我正在尝试删除一些文件(来自我的linux机器),除了少数:
mini.py
#!/usr/bin/python3
import subprocess
subprocess.run(['rm', '-f', '!(INCAR|KPOINTS|PO*|*.sh)'])
print("Job Done")
是:
mini.py
从<meta name="author" content="John Smith">
的输出中可以看出,它不会发现任何错误,但是它的工作都没有。
我在这里做错了什么?
答案 0 :(得分:4)
它不起作用,因为!()
是扩展匹配模式,需要明确启用:
subprocess.run(['/bin/bash', '-O', 'extglob', '-c', 'rm -f !(INCAR|KPOINTS|PO*|*.sh)'])
请注意,这将删除脚本本身......
答案 1 :(得分:-1)
您也可以使用
import os
os.system('rm -f !(INCAR|KPOINTS|PO*|*.sh)')