繁体   English   中英

如何从目录中输入多个文件

[英]How to input multiple files from a directory

首先,我最近刚接触Unix,我试图在线找到我的问题的解决方案,但我找不到解决方案。

所以我通过我的Unix终端运行Python ,我有一个解析xml文件的程序,并将结果输入到.dat文件中。

我的程序有效,但我必须单独输入每个xml文件(数量超过50 )。

例如:

clamshell: python3 my_parser2.py 'items-0.xml' 'items-1.xml' 'items-2.xml' 'items-3.xml' .....`

所以我想知道是否可以从目录中读取,其中包含我的所有文件到我的程序中? 而不是单独键入所有xml文件名并以这种方式运行程序。

非常感谢任何帮助。

python3 my_parser2.py *.xml应该可以工作。

shell本身可以扩展通配符,因此,如果您不关心输入文件的顺序,只需使用:

python3 my_parser2.py items-*.xml

如果数字顺序重要(您想0..910-99等的顺序,您可能需要稍微调整通配符的参数,以保证这一点,如用:

python3 my_parser2.py items-[0-9].xml items-[1-9][0-9].xml items-[1-9][0-9][0-9].xml

除了命令行选项之外,您可以在脚本中使用glob并绕过命令参数的需要:

import glob 
filenames = glob.glob("*.xml")

这将返回运行脚本的目录中的所有.xml文件(作为文件名)。

然后,如果需要,您可以使用基本循环遍历所有文件:

for file in filenames:
    with open(file, 'r') as f:
        # do stuff to f.
import glob

listOffiles = glob.glob('directory/*.xml')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM