将命令应用于python中的文件列表
我有个棘手的问题。我需要将一个名为将命令应用于python中的文件列表,python,command,call,Python,Command,Call,我有个棘手的问题。我需要将一个名为xRITDecompress的特定命令应用于扩展名为-C_u的文件列表,我应该使用Python来完成这项工作 不幸的是,此命令不适用于通配符,我无法执行以下操作: os.system("xRITDecompress *-C_") 原则上,我可以使用for循环编写一个辅助bash脚本,并在python程序中调用它。但是,我不想依赖辅助文件 在python程序中执行此操作的最佳方法是什么?您可以使用获取要在其上运行命令的文件列表,然后针对该列表中的每个文件运行命令
xRITDecompress
的特定命令应用于扩展名为-C_u
的文件列表,我应该使用Python来完成这项工作
不幸的是,此命令不适用于通配符,我无法执行以下操作:
os.system("xRITDecompress *-C_")
原则上,我可以使用for
循环编写一个辅助bash脚本,并在python程序中调用它。但是,我不想依赖辅助文件
在python程序中执行此操作的最佳方法是什么?您可以使用获取要在其上运行命令的文件列表,然后针对该列表中的每个文件运行命令-
import glob
for f in glob.glob('*-C_'):
os.system('xRITDecompress {}'.format(f))
从
glob模块根据unixshell使用的规则查找与指定模式匹配的所有路径名
如果通过(下划线)匹配单个字符,则应使用-?
,如-
glob.glob('*-C?')
请注意,glob
只会在当前目录中搜索,但根据您对原始试用版的要求,这可能是您想要的
您可能还想看看这个模块,它是一个用于运行命令(生成进程)的功能更强大的模块。范例-
import subprocess
import glob
for f in glob.glob('*-C_'):
subprocess.call(['xRITDecompress',f])
您可以使用或获取与给定模式匹配的文件:
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)
我希望它能满足您的问题谢谢,我将尝试使用子流程。下划线是扩展名“-C_uu”的一部分:解压缩后,文件名结尾变为“-uuu”。好的,这将更改子流程示例中的代码。@urgeo另外,我想建议如果答案对您有帮助,您应该单击左侧的勾号(以对您最有帮助的为准)来接受它们,这将有助于社区。谢谢,这就是我要找的!