Python从目录Error获取所有文件

时间:2014-11-30 02:04:57

标签: python file

我有一个包含22个.sgm格式文件的文件夹。我想读取所有文件。我将传递的命令行参数的输入看起来像

/usr/local/pub/tmh/Reuters/*.sgm

所以这应该读取文件夹中的所有sgm格式文件。

我编写的使用python 3.4.2的代码是

allfiles=(glob.glob(sys.argv[1]))
print(allfiles)

现在我得到的是1个文件/usr/local/pub/tmh/Reuters/reut2-000.sgm。其余的没有被glob选中。此外,我尝试打印应该打印此/usr/local/pub/tmh/Reuters/*.sgm的参数,但它打印/usr/local/pub/tmh/Reuters/reut2-000.sgm(这是文件夹中的第一个文件)

1 个答案:

答案 0 :(得分:5)

您的 shell 正在为您扩展glob,因此您实际上将所有文件作为单独的参数传递给您的脚本,然后查看第一个。

所以,不是将/usr/local/pub/tmh/Reuters/*.sgm传递给你的脚本,而是传递/usr/local/pub/tmh/Reuters/reut2-000.sgm /usr/local/pub/tmh/Reuters/reut2-001.sgm /usr/local/pub/tmh/Reuters/reut2-002.sgm等等。

引用 glob或参数,或只读取sys.argv[1:]中的所有文件。

引用参数:

python yourscript.py "/usr/local/pub/tmh/Reuters/*.sgm"

或将glob扩展留给shell:

allfiles = sys.argv[1:]
print(allfiles)