我想删除文件中的所有* .ts。 os.remove
没有用。
这并没有扩展*
>>> args = ['rm', '*.ts']
>>> p = subprocess.call(args)
rm: *.ts No such file or directory
答案 0 :(得分:10)
rm
程序采用文件名列表,但*.ts
不是文件名列表,而是匹配文件名的模式。您必须为rm
命名实际文件。当你使用shell时,shell(但不是rm
!)会为你扩展*.ts
之类的模式。在Python中,你必须明确地要求它。
import glob
import subprocess
subprocess.check_call(['rm', '--'] + glob.glob('*.ts'))
# ^^^^ this makes things much safer, by the way
当然,为什么要打扰subprocess
?
import glob
import os
for path in glob.glob('*.ts'):
os.remove(path)