簡體   English   中英

如何在Python中運行bash腳本,但就好像它從另一個目錄運行?

[英]How do I run a bash script inside Python, but act as if it's running from another directory?

subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"])

我這樣做 但是,在我的run.sh中,我有“相對”路徑。 所以,我必須“cd”到該目錄,然后運行shell腳本。 我怎么做?

使用cwd參數subprocess.call()

來自這里的文檔: http//docs.python.org/library/subprocess.html

如果cwd不是None,則子cwd的當前目錄在執行之前將更改為cwd 請注意,在搜索可執行文件時不考慮此目錄,因此您無法指定程序相對於cwd的路徑。

例:

subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], cwd='/tmp')

嗯,你可以使用subprocess.Popen與殼牌= True和CWD =“你想要的工作目錄”

編輯:似乎調用具有相同的參數,所以只設置一個cwd參數將起作用:

subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], cwd="PATH")

你可以像這樣提供你的工作目錄:

subprocess.call([“/ home / blah / trunk / blah / run.sh”,“/ tmp / ad_xml”,“/ tmp / video_xml”],cwd =“/ home / blah / trunk / blah”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM