从python3运行bash命令

时间:2016-06-16 17:19:00

标签: python bash

我正在尝试删除一些文件(来自我的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">的输出中可以看出,它不会发现任何错误,但是它的工作都没有。

我在这里做错了什么?

2 个答案:

答案 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)')