Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从一个目录输入多个文件_Python_Xml_Unix - Fatal编程技术网

Python 如何从一个目录输入多个文件

Python 如何从一个目录输入多个文件,python,xml,unix,Python,Xml,Unix,首先也是最重要的一点,我最近刚接触Unix,我试图在网上找到我的问题的解决方案,但找不到解决方案 因此,我正在通过Unix终端运行Python,我有一个程序可以解析xml文件,并将结果输入到.dat文件中 我的程序可以运行,但我必须单独输入每个xml文件(超过50) 例如: clamshell: python3 my_parser2.py 'items-0.xml' 'items-1.xml' 'items-2.xml' 'items-3.xml' .....` 所以我想知道是否可以从包含我所

首先也是最重要的一点,我最近刚接触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..9
10-99
等按该顺序排列),您可能需要稍微调整通配符参数以保证这一点,例如:

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

除了命令行选项之外,您只需在脚本中使用,而不需要使用命令参数:

import glob 
filenames = glob.glob("*.xml")
这将返回运行脚本的目录中的所有
.xml
文件(作为文件名)

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

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

非常好的答案!感谢您的书面和清晰的答案。这非常好,感谢您的编辑和回答!不客气,Yozuru。不要忘记回答其中一个问题,这样有类似问题的用户将知道什么有效。:-)
import glob

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