在命令提示符中使用python更改当前工作目录

2024-06-26 14:42:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图编写一个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)

Tags: echo目录脚本cmddirbatchchangecommand
2条回答

如果要在命令提示符下更改目录,必须使用cd.bat脚本。

不能让另一个进程(即Python)执行此操作,因为在另一个进程中对当前目录所做的更改不会反映回父进程。.bat脚本工作的原因是,它是由调用它的命令shell处理的,而不是由子进程处理的。

当然这不起作用,因为subprocess.call正在为脚本生成整个新进程。这将在完全独立的环境中执行脚本。

相关问题 更多 >