通过python运行shell脚本时未找到文件

通过python运行shell脚本时未找到文件,python,shell,Python,Shell,我有一个python脚本,在代码的一部分中,必须执行一个终端命令这是代码: # run shell script and return response printed def run_shell(command_string): p = subprocess.Popen([command_string], stdout=subprocess.PIPE, stderr=subprocess.PIPE) return p.communicate() 它是获得命令并运行该命令的特定

我有一个python脚本,在代码的一部分中,必须执行一个终端命令这是代码:

# run shell script and return response printed
def run_shell(command_string):
    p = subprocess.Popen([command_string], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    return p.communicate()
它是获得命令并运行该命令的特定函数。例如,当输入为“查找”(递归列出文件和目录)时,输出为:

./actions
./actions/scripts
./actions/scripts/script_aa00.py
./log_list_template.json
./README.md
./.git
./main
./main/Classifier.py
./main/Solver.py
./main/learner.py
./main/Database.py
./main/__pycache__
./main/__pycache__/Database.cpython-35.pyc
./main/__pycache__/learner.cpython-35.pyc
./start.sh
./run.py
./signals
./signals/scripts
./signals/scripts/script_aa00.py  [I want to run this script]
./signals/list0.json
./signals/template.json

但当输入为“python3 signals/scripts/script_aa00.py”时,输出包含一个错误,表示找不到script_aa00.py。当我尝试“python3 signals/scripts/script_aa00.py”时,我自己在终端(在这个目录中)工作得很好

您可以尝试将
shell=true
添加到Popen和/或使用绝对路径:

p = subprocess.Popen(['/usr/bin/python3', '/home/.../signals/scripts/script_aa00.py'], shell=true, stdout=subprocess.PIPE, ...)

您可以尝试将
shell=true
添加到Popen和/或使用绝对路径:

p = subprocess.Popen(['/usr/bin/python3', '/home/.../signals/scripts/script_aa00.py'], shell=true, stdout=subprocess.PIPE, ...)