从python文件运行bash脚本

时间:2018-01-04 05:23:21

标签: python bash

我有一个bash脚本,可以更改命令行中的路径, 这个,

#!/usr/bin/env python
cd /mnt/vvc/username/deployment/

我有一个python脚本,我希望在路径更改到所需路径后运行

剧本

#!/usr/bin/env python
import subprocess
import os
subprocess.call(['/home/username/new_file.sh'])

for folder in os.listdir(''):
print ('deploy_predict'+' '+folder)

我明白了

 File "/home/username/new_file.sh", line 2
 cd /mnt/vvc/username/deployment/
                                ^
SyntaxError: invalid syntax

有关如何解决此问题的任何建议?提前感谢

1 个答案:

答案 0 :(得分:2)

您需要明确告诉子进程运行sh文件的shell。可能是以下之一:

subprocess.call(['sh', '/home/username/new_file.sh'])
subprocess.call(['bash', '/home/username/new_file.sh'])

但是,这不会改变python程序的工作目录,因为命令是在单独的上下文中运行的。

您希望在运行时更改python程序的工作目录:

os.chdir('/mnt/vvc/username/deployment/')

但这并不是很好的做法。将路径传递给os.listdir可能更好,而不是更改工作目录:

os.listdir('/mnt/vvc/username/deployment/')