2017-04-19 224 views
0

我有這樣一段代碼在Python我樹莓派作品的內容:使用subprocess.Popen刪除文件夾

a1 = "arecord --device=hw:0,0 --format S16_LE --rate 44100 -c1 test.wav" 
proc = subprocess.Popen(a1.split()) 
time.sleep(5) 
proc.kill() 

當此執行,在USB聲卡我已經開始錄製音頻,以及然後在5秒後停止。但我想使用相同的格式來執行其他命令行命令,這是行不通的:

a2 = "rm -f Test/*" 
delete_contents = subprocess.Popen(a2.split()) 

我試圖把這個給我的測試文件夾中刪除一切,當我鍵入它的工作原理命令,但在我從Python程序調用它時不會刪除。

+2

使用[shutil.rmtree(https://docs.python.org/2/library/shutil.html),它更簡單。 –

+2

此外,['shlex.split()'](https://docs.python.org/2/library/shlex.html#shlex.split)對於解析shell命令來說更可靠。 – TemporalWolf

+0

我試過shutil.rmtree,沒有任何反應。順便說一下,我只想刪除Test文件夾的內容,而不是文件夾本身 – smartzer

回答

0

os.remove刪除文件:

directoryToClean = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Test') 
directoryItems = [os.path.join(directoryToClean, f) for f in os.listdir(directoryToClean)] 
[os.remove(f) for f in directoryItems if os.path.isfile(f)]