尝试使用Python脚本中的选项调用Shell脚本。该生产线./dropbox_uploader.sh -s下载/测试/图片图片/从Python脚本调用时通过SSH,但错误运行良好:
import subprocess
subprocess.call(['./dropbox_uploader.sh -s download /test/pictures pictures/'])
这是错误消息:
Traceback (most recent call last):
File "sync.py", line 2, in <module>
subprocess.call(['./dropbox_uploader.sh -s download /test/pictures pictures/'])
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
如果的第一个参数subprocess.call
是列表,则它必须包含可执行文件和参数作为单独的项目:
subprocess.call(['./dropbox_uploader.sh', '-s',
'download', '/test/pictures', 'pictures/'])
或者,也许更方便:
import shlex
cmd = './dropbox_uploader.sh -s download /test/pictures pictures/'
subprocess.call(shlex.split(cmd))
还有一个选项可以将解析和执行委托给外壳程序:
cmd = './dropbox_uploader.sh -s download /test/pictures pictures/'
subprocess.call(cmd, shell=True)
(但请注意安全警告)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句