2014-01-14 58 views
0

我將如何做到以下幾點:子進程刪除文件

subprocess.call(shlex.split('rm {}'.format(os.path.join('/tmp', '*.mp4')))) 

基本上,我想刪除我的TMP文件夾中所有的MP4文件。但我得到以下錯誤:

rm: /tmp/*.mp4: No such file or directory 

回答

2

爲什麼不使用glob?

import glob 
import os 
for fl in glob.glob("/tmp/*.mp4"): 
    os.remove(fl) 

不需要退出到另一個進程。

0

*由shell解釋。默認call函數的shell參數設置爲False,這意味着它將直接exec您給它的命令而不使用shell。這意味着通常不會發生shell globbing。如果您想要這種行爲,您需要將shell = True添加到您的call調用中。然而,這也帶來了所有常規的炮彈,空間和逃逸的麻煩,所以要警告。

如果我想垃圾目錄,我可能會使用rmtree而不是脫殼。