当前位置: 首页 > 知识库问答 >
问题:

迭代子目录中的文本文件

蔚俊人
2023-03-14

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

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

这是可行的,但是我必须将.py文件存储在同一个目录(文件夹)中才能使其运行,因此迭代包含了.py文件本身。理想情况下,我想指挥的是:;

  1. “查看此子目录/文件夹,并循环访问其中的所有文件”

或。。。

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

共有3个答案

封烨伟
2023-03-14

解决方案非常简单。

for file in glob.glob('*'):
    if not file.endswith('.txt'):
        continue
    f = open(file)
    text = f.read()
    f.close()
蓬运诚
2023-03-14

glob.glob() 使用与标准类 unix 外壳相同的通配符模式匹配。当然,该模式可用于过滤扩展:

# this will list all ".py" files in the current directory
# (
>>> glob.glob("*.py")
['__init__.py', 'manage.py', 'fabfile.py', 'fixmig.py']

但是它也可以用来探索给定的路径,相对的:

>>> glob.glob("../*")
['../etc', '../docs', '../setup.sh', '../tools', '../project', '../bin', '../pylint.html', '../sql']

或绝对:

>>> glob.glob("/home/bruno/Bureau/mailgun/*")
['/home/bruno/Bureau/mailgun/Domains_ Verify - Mailgun.html', '/home/bruno/Bureau/mailgun/Domains_ Verify - Mailgun_files']

当然,您可以同时执行这两项操作:

>>> glob.glob("/home/bruno/Bureau/*.pdf")
['/home/bruno/Bureau/marvin.pdf', '/home/bruno/Bureau/24-pages.pdf', '/home/bruno/Bureau/alice-in-wonderland.pdf']
钱照
2023-03-14

< code>glob.glob函数实际上接受一个globbing模式作为它的参数。例如,< code>"*。txt",同时匹配文件名以< code >结尾的文件。txt。

以下是您如何使用它:

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

但是,如果您想排除某些特定文件,请说<code>。py文件,这不是globbing语法直接支持的,如本文所述。

在这种情况下,您需要获取这些文件,并手动排除它们:

pythonFiles = glob.glob("*.py")
otherFiles = [f for f in glob.glob("*") if f not in pythonFiles]
 类似资料:
  • 干杯大家, 我需要python 3.6的帮助。所以我有这样的数据结构: 我目前正在主目录所在的目录下工作,所以我不需要在此之前指定路径。首先,我想遍历主目录,找到所有子目录。然后我想在他们每一个人身上找到。wav文件,当处理完这些文件后,我想转到下一个子目录,以此类推,直到它们都被打开。处理wav文件。这正是我想做的。wav文件被输入到我的程序中,处理它们,这样我就可以把它们转换成numpy数组,

  • 我想从一个目录下从某些字母开始的所有文件中提取数据。如上所示,当我遍历目录并打印每个符合的文件名时,我得到一列文件名(字符串)。同时,工作得非常好。但是,运行以下代码只会返回错误。为什么找不到文件?我该怎么做才能解决这个问题?

  • 所以我开始使用Neovim /Spacevim,它真是太棒了! 我仍然在习惯一切,因为我以前从未使用过Vim或类似的东西。 我的问题围绕着在当前打开的项目的所有文件中搜索特定文本。 我正在使用文件管理器,我想知道如何在项目中的所有文件中搜索特定字符串。就像如果我想在当前打开的文件夹/目录中搜索,我该如何去做?主要目标是列出包含此搜索字符串的所有文件。 我已经安装了(以及),但在搜索所有文件中的特定

  • 问题内容: 使用此代码 返回特定目录中文件夹和文件的总和,而不用关心 子目录 。我想获取目录及其子目录中所有文件的数量。 PS:返回所有文件和文件夹的总和几乎无关紧要。 任何帮助表示赞赏,谢谢 问题答案: 试试这个。 它可能会帮助您。

  • 问题内容: 我坚信这只是一种语法-但是我不知道为什么我的代码: 将无法正常工作-它显然可以进入“ testfilefolder”文件夹,并告诉我该文件在那里,即未找到错误消息“ file2.txt”。因此它可以找到它来告诉我找不到它… 但是,我得到了这段代码: 奖金-这是做我想做的事情的好方法吗(从文件中读取并计算单词的出现频率)?这是我使用Python的第一天(尽管我有很多编程经验。) 我必须说