选择以指定字符串开头的文件

71 投票
8 回答
170433 浏览
提问于 2025-04-17 18:31

在一个文件夹里,我有很多文件,它们的名字大致是这样的:

001_MN_DX_1_M_32
001_MN_SX_1_M_33
012_BC_2_F_23
...
...

在Python中,我需要写一段代码,从这个文件夹里选择一个以特定字符串开头的文件。比如,如果这个字符串是 001_MN_DX,那么Python就会选择第一个文件,依此类推。

我该怎么做呢?

8 个回答

22

你可以使用一个叫glob的模块,它遵循Unix系统的规则来进行模式匹配。也就是说,它可以帮助你找到符合特定规则的文件和目录。

了解更多信息。

from glob import glob

files = glob('*001_MN_DX*')
96

当然可以!请看下面的内容:

这个问题主要是关于如何在编程中处理某些特定的情况。很多时候,我们会遇到一些错误或者意外的结果,这时候就需要找到解决办法。比如说,有时候程序运行得很慢,或者根本不运行,这就需要我们仔细检查代码,看看哪里出了问题。

在编程的过程中,调试是一个非常重要的环节。调试就是找出代码中的错误并修复它们。为了更好地调试,我们可以使用一些工具,这些工具可以帮助我们查看代码的运行情况,找出问题所在。

另外,理解代码的逻辑也很重要。我们需要清楚每一行代码的作用,才能更好地解决问题。编程就像拼图,每一块都很重要,缺了哪一块都会影响整体的效果。

总之,遇到问题时,不要着急,慢慢分析,找出原因,然后一步一步解决它。这样你就能不断进步,成为更好的程序员!

import os
prefixed = [filename for filename in os.listdir('.') if filename.startswith("prefix")]
61

试试使用 os.listdiros.path.joinos.path.isfile 这几个函数。
如果用长的方式(也就是用 for 循环),

import os
path = 'C:/'
files = []
for i in os.listdir(path):
    if os.path.isfile(os.path.join(path,i)) and '001_MN_DX' in i:
        files.append(i)

用列表推导式写的代码是

import os
path = 'C:/'
files = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path,i)) and \
         '001_MN_DX' in i]

想要更详细的解释,可以查看 这里...

撰写回答