Vic*_*tor 46 python shell command-line
我正在使用调用在python中调用命令行程序os.system(command)
.
如何调用此命令传递不同的文件夹以执行?系统调用了吗?或者我应该保存当前文件夹,并在执行后更改还原它.
hyn*_*cer 80
该subprocess
模块是一个非常好的解决方案.
import subprocess
p = subprocess.Popen([command, argument1,...], cwd=working_directory)
p.wait()
Run Code Online (Sandbox Code Playgroud)
它还有修改环境变量,将输入/输出重定向到调用程序等的参数.
zen*_*poy 10
os.chdir(path)
在调用命令之前尝试.
从这里:
os.chdir(path)将当前工作目录更改为path.
可用性:Unix,Windows
编辑
这将改变当前的工作目录,你可以通过以下方式获得当前的工作:
os.getcwd()
Run Code Online (Sandbox Code Playgroud)
如果你想保存它并在以后恢复,如果你需要在原始工作目录中做一些工作.
编辑2
在任何情况下,您都应该按照此处的建议移至subprocess
(doc).如果你使用's',你可以选择提供参数来指定子进程的工作目录:读取它.subprocess
Popen
cwd
subprocess.Popen(args, bufsize=0, executable=None, stdin=None,
stdout=None, stderr=None, preexec_fn=None, close_fds=False,
shell=False, cwd=None, env=None, universal_newlines=False,
startupinfo=None, creationflags=0)
Run Code Online (Sandbox Code Playgroud)
...
如果cwd不是None,则子节点的当前目录在执行之前将更改为cwd.请注意,在搜索可执行文件时不考虑此目录,因此您无法指定程序相对于cwd的路径.