迭代目录中的文件,并将同名文件放入不同的列表中

2024-04-26 13:25:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里,我的目录中有不同类型的文件

C/Documents

我的文件:

apple_file1.txt

orange_file2.txt

pear_file1.txt

grape_file2.txt

我想将所有带有“file1”和“file2”字符的文件放入不同的列表中,如“List1”和“List2”

我的代码:

for file in os.listdir(myDir):
    if file.split('_')[-1] in file:
        file1_.append(file)

Tags: 文件in目录txt类型apple列表字符
2条回答

你可以用这样的东西

list1 = []
list2 = []
for file in os.listdir(MyDir):
    if file.split('_')[-1].split('.')[0] == 'file1':
        list1.append(file)
    elif file.split('_')[-1].split('.')[0] == 'file2':
        list2.append(file)

另一种方法是使用glob模块。它提供了从目录通配符搜索生成文件列表的功能

import glob
import os

os.chdir(MyDir)
list1 = glob.glob("*_file1*")
list2 = glob.glob("*_file2*")

您不需要更改工作目录,甚至可以像这样传递绝对搜索路径

glob.glob("<MyDir>/*_file1*")

您可以使用glob模块迭代并检查要分发的文件名。差不多

import glob
myDir = 'C/Documents'
file_path = myDir+"/*"
files = list(glob.glob(pathname=file_path))
list1 = []
list2 = []
for file in files:
    if file.lower().endswith("file1.txt"):
        list1.append(file)
    else:
        list2.append(file)
##do anything with the lists

相关问题 更多 >