我正试图编写一个python脚本,将我的cwd
更改为所需的目录。我无法直接从python执行此任务,因此我编写了一个简单的batch
脚本来执行此任务。
Changedir.bat
@echo off
chdir /D F:\cygwin\home\
如果我直接在我的cmd
中执行上面的脚本,它可以正常工作,但是如果我尝试用python脚本执行它,就不会发生任何事情。我的cwd
保持不变。
PythonScript.py
import shlex,subprocess
change_dir = r'cmd.exe /c C:\\Users\\test.bat'
command_change = shlex.split(change_dir)
subprocess.call(command_change)
如果要在命令提示符下更改目录,必须使用
cd
或.bat
脚本。不能让另一个进程(即Python)执行此操作,因为在另一个进程中对当前目录所做的更改不会反映回父进程。
.bat
脚本工作的原因是,它是由调用它的命令shell处理的,而不是由子进程处理的。当然这不起作用,因为subprocess.call正在为脚本生成整个新进程。这将在完全独立的环境中执行脚本。
相关问题 更多 >
编程相关推荐