迭代子目录中的文本文件

DC_Liv

如何仅在目录中迭代文本文件?到目前为止,我所拥有的是;

for file in glob.glob('*'):
    f = open(file)
    text = f.read()
    f.close()

这有效,但是我必须将我的 .py 文件存储在同一目录(文件夹)中才能运行,因此迭代包括 .py 文件本身。理想情况下,我想要命令的是;

  1. “查看此子目录/文件夹,并遍历其中的所有文件”

或者...

  1. “查看此目录中的所有文件并迭代那些扩展名为 .txt 的文件”

我确定我要求的东西相当直接,但我不知道如何进行。它可能值得我强调,我通过反复试验获得了 glob 模块,所以如果这是绕过这个特定方法的错误方法,请随时纠正我!谢谢。

右腿

glob.glob函数实际上采用通配模式作为其参数。例如,"*.txt"while 匹配名称以.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]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章