簡體   English   中英

Python,使用帶有 cwd 參數的 glob 到 subprocess.call

[英]Python, using glob with cwd argument to subprocess.call

我想在 python 中使用 subprocess.call() 調用一個子進程,並使用 'cwd' 參數,以便這個特定的子進程在不同的目錄中執行。 我不想使用 os.chdir() 因為對於程序中以后的進程,我想保留在程序運行的原始目錄中。

但是,我還想在一組匹配 glob 模式的文件上運行這個特定的子進程。 例如,我可能想做

subprocess.call(['ls'] + glob('*.txt'), cwd="/my/other/dir/")

但是當然 glob 命令不知道在 /my/other/dir 中查找,所以它失敗了。 如何在不使用 shell=True 的情況下執行此操作?

您也可以在 glob 模式中使用 CWD。 glob.glob("/my/other/dir/*.txt") 它將以完整匹配擴展,例如/my/other/dir/aa.txt 如果您不想將完整路徑傳遞給可執行文件,請將其切斷。

CWD = "/my/other/dir/"
files = map(lambda x: x[len(CWD):], glob.glob(CWD + "*.txt"))
subprocess.call(['ls'] + files, cwd=CWD)

或者您可以在子進程完成后將目錄更改回原處。

暫無
暫無

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

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