我有特定路径的文件,需要根据namefile逐个选择(yyyymmdd.faifb1p16m2.nc),其中yyyy是年,mm是月,dd是日期。我编写了这样的代码:
results=[]
base_dir = 'C:/DATA2013'
os.chdir(base_dir)
files = os.listdir('C:/DATA2013')
for f in files:
results += [each for each in os.listdir('C:/DATA2013')
if each.endswith('.faifb1p16m2.nc')]
如果我只选择1月份的文件,然后选择2月份的文件,那么接下来该怎么办,依此类推。非常感谢。你知道吗
要验证文件名,可以使用^{} method :
你可以做:
它将列出一月份的所有文件名。 假设您的所有文件的格式与您在问题中描述的相同。你知道吗
两个正则表达式:
\d{4}(?:\d?|\d{2})(?:\d?|\d{2})\.faifb1p16m2\.nc
\d{8}\.faifb1p16m2\.nc
样本数据:
第一个正则表达式将匹配所有7个条目。第二个正则表达式将只匹配1和5。我可能把正则表达式弄得比我需要的复杂多了。你知道吗
您将需要第二个正则表达式,但我只是将第一个列为示例。
作为another similar solution shows,您可以放弃glob操作系统列表目录(),所以:
变成:
然后剩下的代码就很棒了。使用glob的一个好处是,您可以使用
iglob
,它与glob类似,但作为迭代器,在遍历包含大量文件的目录时可以提高性能。你知道吗还有一件事,下面是另一篇stackoverflow文章,概述了python's infamous lambda feature。它通常用于函数
map
、reduce
、filter
,等等。你知道吗相关问题 更多 >
编程相关推荐