我有一个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
有关如何解决此问题的任何建议?提前感谢
答案 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/')