从文件夹中获取特定文件并将它们保存在列表中

Get specific files from a folder and save them in a list

我在一个文件夹中有不同的文件,我想对它们进行排序并将排序后的文件保存在列表中。我的目标是只保存 2021 年以 '.txt' 结尾的文件

import os
os.chdir(r"C:\Users\MyName\Desktop\Python-Files\Test_OS")
list = []

for file in os.listdir("."):
    date, fileName = file.split("-")
    name, fileFormat = fileName.split(".")
    i = 1
    print(date, name, fileFormat)
    if fileFormat == "txt" and date == f"0{i}.2021":
        list.append(file)
        i = i + 1
        print(f"0{i}.2021")
        

我的文件夹如下所示:

'01.2020-Monatsabschluss.txt',
 '01.2021-Monatsabschluss.txt',
 '02.2021-Monatsabschluss.txt',
 '02.2021-Monatsabshluss.bmp',
 '03.2021-Monatsabschluss.txt',
 '04.2021-Monatsabschluss.txt',
 '05.2021-Monatsabschluss.txt',
 '06.2021-Monatsabschluss.txt'

如果我执行我的代码,该列表仅包含“01.2021-Monatsabschluss.txt”。我错过了什么?

循环逻辑已关闭 - 在与 date 比较后,您只需递增 i 一次。您需要在内部循环中不断增加 i 以匹配 0203

但是,使用路径名通配会简单得多:

from glob import glob
filelist = glob("0?.2021-Monatsabschluss.txt")

这会给你:

['01.2021-Monatsabschluss.txt',
 '02.2021-Monatsabschluss.txt',
 '03.2021-Monatsabschluss.txt',
 '04.2021-Monatsabschluss.txt',
 '05.2021-Monatsabschluss.txt',
 '06.2021-Monatsabschluss.txt']

? 将匹配任何字符,所以如果你想将它限制为 1-9 (指定月份),你可以使用模式 "0[1-9].2021-Monatsabschluss.txt".

(另外,最好不要将列表命名为 list,因为 list 是内置 list 类型的名称)。