从文件夹中获取特定文件并将它们保存在列表中
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
以匹配 02
、03
等
但是,使用路径名通配会简单得多:
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
类型的名称)。
我在一个文件夹中有不同的文件,我想对它们进行排序并将排序后的文件保存在列表中。我的目标是只保存 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
以匹配 02
、03
等
但是,使用路径名通配会简单得多:
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
类型的名称)。