![](/img/trans.png)
[英]Is running a bash command to copy paste a file in Python3 a reliable option?
[英]running bash command from python3
我正在嘗試從Linux機器上刪除一些文件,但很少:
touch INCAR KPOINTS foo bar
$ls
bar foo INCAR KPOINTS
$python3 mini.py
Job Done
$ls
bar foo INCAR KPOINTS
mini.py
是:
#!/usr/bin/python3
import subprocess
subprocess.run(['rm', '-f', '!(INCAR|KPOINTS|PO*|*.sh)'])
print("Job Done")
從mini.py
的輸出中可以看出,它沒有發出任何錯誤,但沒有執行任何操作。
我在這里做錯了什么?
它不起作用,因為!()
是擴展的匹配模式,需要顯式啟用:
subprocess.run(['/bin/bash', '-O', 'extglob', '-c', 'rm -f !(INCAR|KPOINTS|PO*|*.sh)'])
請注意,這將刪除腳本本身...
你也可以使用
import os
os.system('rm -f !(INCAR|KPOINTS|PO*|*.sh)')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.