我遇到了一个棘手的问题。我需要将一个名为xRITDecompress
的特定命令应用于扩展名为-C_
的文件列表,我应该使用Python来执行此操作。
不幸的是,这个命令不能使用通配符,我不能这样做:
os.system("xRITDecompress *-C_")
原则上,我可以编写一个带有for
循环的辅助bash脚本,并在我的python程序中调用它。但是,我不希望依赖于辅助文件…
在python程序中这样做的最好方法是什么?
您可以使用glob.glob()
获取您想要运行命令的文件列表,然后对于该列表中的每个文件,运行命令-
import glob
for f in glob.glob('*-C_'):
os.system('xRITDecompress {}'.format(f))
From documentation -
glob模块根据Unix shell使用的规则查找匹配指定模式的所有路径名。
如果您希望通过_
(下划线)匹配单个字符,则应该使用- ?
,如-
glob.glob('*-C?')
请注意,glob
只会在当前目录中搜索,但根据你想要的原始试验,似乎这可能是你想要的。
你可能还想看看subprocess
模块,它是一个更强大的模块,用于运行命令(生成进程)。例子——
import subprocess
import glob
for f in glob.glob('*-C_'):
subprocess.call(['xRITDecompress',f])
您可以使用glob.glob
或glob.iglob
来获取与给定模式匹配的文件:
import glob
files = glob.iglob('*-C_')
for f in files:
os.system("xRITDecompress %s" % f)
用glob.glob
搜索,os.system
执行
import os
from glob import glob
for file in glob('*-C_'):
os.system("xRITDecompress %s" % file)
我希望它能满足你的问题