【发布时间】:2019-06-18 13:42:51
【问题描述】:
我正在编写一个测试脚本,如果该路径被确认存在并且是一个目录,它应该从当前目录 cd 到一个新目录
serial_number = input("Enter serial number: ")
directory = "/etc/bin/foo"
if os.path.exists(directory) and os.path.isdir(directory):
#cd into directory?
subprocess.call(['cd ..' + directory])
我的困境是我不知道如何正确地将变量传递给子进程命令,或者我是否应该使用 call 或 Popen。当我尝试上面的代码时,它返回一个错误,指出No such file or directory "cd ../etc/bin/"。我需要从当前目录返回一个目录,然后我可以输入/etc 并读取其中的一些文件。有什么建议吗?
【问题讨论】:
-
使用
subprocess运行cd几乎总是没用;它只会更改分叉子进程的工作目录,而一旦subprocess.call返回,当前工作目录将直接保持不变。如果您希望在 Python 进程退出后工作目录发生更改,这也是正确的。
标签: python linux python-3.x subprocess