猿问

如何使用python脚本在目录之间“cd”

我正在编写一个测试脚本,如果该路径被确认存在并且是一个目录,它应该从当前目录 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并读取其中的一些文件。有什么建议吗?


qq_笑_17
浏览 289回答 3
3回答

慕斯709654

更改使用的工作目录os.chdir("/your/path/here")子进程将产生新进程,这不会影响您的父进程。

宝慕林4294392

你应该使用os.chdir(directory)然后调用来打开你的进程。我想这会更简单易读

犯罪嫌疑人X

无法使用子进程更改当前目录,因为这只会在该子进程的上下文中更改当前目录,而不会影响当前进程。相反,要更改 Python 进程中的当前目录,请使用 Python 的函数:os.chdir,例如:os.chdir('../etc/bin/')另一方面,如果您的想法是 Python 脚本不执行任何其他操作,而只是更改目录而不是退出(这就是我对问题的理解),那也不起作用,因为当您退出 Python 进程时,当前父进程的工作目录将再次不受影响。
随时随地看视频慕课网APP

相关分类

Python
我要回答