我想在Linux中从Python 3运行shell脚本,传递两个参数,这些参数包含指向两个不同文件的文件路径。然后,shell脚本调用用Python 2编写的程序。
在Python 3中,我这样称呼shell脚本:
import os import sys os.chmod('/path/to/sh', 0o777) subprocess.call(['/path/to/sh', '/path/to/file1', '/path/to/file2'], shell=True)
我的shell脚本看起来像这样:
#!/bin/sh set -x path1=$1 path2=$2 python2 path/to/programme "$path1" "$path2"
现在文件路径为空,并且shell脚本返回类似
python2 path/to/programme '' ''
的内容。有人知道我如何正确传递文件路径,以便用Python 2编写的程序可以读取它们吗?
或者还有更简单的解决方案,例如使用子过程直接调用用Python 2编写的程序吗?
我想在Linux中从Python 3运行shell脚本,传递两个参数,这些参数包含指向两个不同文件的文件路径。然后,shell脚本调用用Python 2编写的程序。在Python中...
不需要shell脚本。您可以使用subprocess
直接运行python2
。
[shell=True
仅在您执行类似操作时才需要