2017-04-19 230 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)]