选择以指定字符串开头的文件
在一个文件夹里,我有很多文件,它们的名字大致是这样的:
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.listdir
、os.path.join
和 os.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]
想要更详细的解释,可以查看 这里...