如何仅迭代目录中的文本文件?到目前为止我所拥有的是;
for file in glob.glob('*'):
f = open(file)
text = f.read()
f.close()
这有效,但是我必须将 .py 文件存储在同一目录(文件夹)中才能使其运行,因此迭代包含 .py 文件本身。理想情况下,我想要命令的是;
- “查看此子目录/文件夹,并迭代其中的所有文件”
或者...
- “查看此目录中的所有文件并迭代那些扩展名为 .txt 的文件”
我确定我要求的东西相当直接,但我不知道如何继续。也许值得我强调的是,我通过反复试验获得了 glob 模块,因此,如果这是解决此特定方法的错误方法,请随时纠正我!谢谢。
最佳答案
glob.glob
函数实际上采用通配模式作为其参数。
例如,"*.txt"
会匹配名称以.txt
结尾的文件。
以下是如何使用它:
for file in glob.glob("*.txt"):
f = open(file)
text = f.read()
f.close()
但是,如果您想排除某些特定文件,例如 .py
文件,则 globbing 语法不直接支持此功能,如 here 所述。 .
在这种情况下,您需要获取这些文件,并手动排除它们:
pythonFiles = glob.glob("*.py")
otherFiles = [f for f in glob.glob("*") if f not in pythonFiles]
关于python - 迭代子目录中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49432084/