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