Python-如何在文件夹中查找所有相同类型的文件并从中列出清单?

问题描述 投票:1回答:4

我已经尝试过此代码来查找文件夹中的所有'jpg'文件,并从中列出一个列表。但是结果显示如下。

['0', '0', '0', '1', '0', '8', '.', 'j', 'p', 'g']
['0', '0', '0', '1', '0', '8', '.', 'j', 'p', 'g', '0', '0', '0', '1', '1', '4', '.', 'j', 'p', 'g']

它返回文件名的所有字符,而不是全部列出文件名。你怎么解决这个问题?预先感谢。

import os 

def find_names(outpath):
    root_path_list= [file for file in os.listdir(outpath)]
    jpg_file_list = []
    for idx, file in enumerate(root_path_list) :
        if file.endswith('.jpg'):
            jpg_file_list += file             
            print(jpg_file_list)
python list filenames
4个回答
0
投票

我更喜欢使用glob库:

一行可以解决您的问题:

import glob, os
glob.glob(os.path.join(outpath,"*.jpg"))

对于您的代码,如果要将元素追加到列表中,则必须+=列表。

jpg_file_list += [file] 

或使用附加

jpg_file_list.append(file)

1
投票
import os
import glob

files = [os.path.basename(i) for i in glob.glob('*.jpg')]

注意,扩展名区分大小写,如果您的文件带有JPG扩展名,则需要做进一步的工作。


0
投票

将条目添加到列表中

jpg_file_list.append(file)

0
投票

您可以使用列表理解:

import os 

def find_names(outpath):
    return [file for file in os.listdir(outpath) if file.lower().endswith(".jpg")]

0
投票
import os
import glob

files = [os.path.basename(i) for i in glob.glob('*.jpg')]

注意,扩展名区分大小写,如果您的文件带有JPG扩展名,则需要做进一步的工作。

© www.soinside.com 2019 - 2024. All rights reserved.