Я хотел бы запустить сценарий оболочки из Python 3 в Linux, передав два аргумента, которые содержат пути к двум разным файлам. Затем сценарий оболочки вызывает программу, написанную в Python 2.
В Python 3 я вызываю сценарий оболочки следующим образом:
import os
import sys
os.chmod('/path/to/sh', 0o777)
subprocess.call(['/path/to/sh', '/path/to/file1', '/path/to/file2'], shell=True)
Мой сценарий оболочки выглядит так:
#!/bin/sh
set -x
path1=$1
path2=$2
python2 path/to/programme "$path1" "$path2"
Теперь пути к файлам пусты, и сценарий оболочки возвращает что-то вроде python2 path/to/programme '' ''
. Кто-нибудь знает, как я могу правильно передать пути к файлам, чтобы программа, написанная на Python 2, могла их прочитать?
Или есть даже более простое решение, такое как использование подпроцесса для прямого вызова программы, написанной на Python 2?