我正在編寫一個測試腳本,如果該路徑被確認(rèn)存在并且是一個目錄,它應(yīng)該從當(dāng)前目錄 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])我的困境是我不知道如何正確地將變量傳遞給子進(jìn)程命令,或者我是否應(yīng)該使用 call 或 Popen。當(dāng)我嘗試上面的代碼時,它返回一個錯誤,說No such file or directory "cd ../etc/bin/". 我需要從當(dāng)前目錄返回一個目錄,這樣我就可以進(jìn)入/etc并讀取其中的一些文件。有什么建議嗎?
3 回答

慕斯709654
TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊
更改使用的工作目錄
os.chdir("/your/path/here")
子進(jìn)程將產(chǎn)生新進(jìn)程,這不會影響您的父進(jìn)程。

寶慕林4294392
TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個贊
你應(yīng)該使用os.chdir(directory)
然后調(diào)用來打開你的進(jìn)程。我想這會更簡單易讀

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個贊
無法使用子進(jìn)程更改當(dāng)前目錄,因?yàn)檫@只會在該子進(jìn)程的上下文中更改當(dāng)前目錄,而不會影響當(dāng)前進(jìn)程。
相反,要更改 Python 進(jìn)程中的當(dāng)前目錄,請使用 Python 的函數(shù):os.chdir
,例如:
os.chdir('../etc/bin/')
另一方面,如果您的想法是 Python 腳本不執(zhí)行任何其他操作,而只是更改目錄而不是退出(這就是我對問題的理解),那也不起作用,因?yàn)楫?dāng)您退出 Python 進(jìn)程時,當(dāng)前父進(jìn)程的工作目錄將再次不受影響。
添加回答
舉報
0/150
提交
取消