使用Python查找目录中的所有CSV文件

92 投票
14 回答
203906 浏览
提问于 2025-04-17 12:48

我怎么能在Python中找到目录下所有扩展名为.csv的文件呢?

14 个回答

33

通过结合使用过滤器和lambda表达式,你可以轻松地从指定文件夹中筛选出csv文件。

import os

all_files = os.listdir("/path-to-dir")    
csv_files = list(filter(lambda f: f.endswith('.csv'), all_files))

# lambda returns True if filename (within `all_files`) ends with .csv or else False
# and filter function uses the returned boolean value to filter .csv files from list files.
61
from os import listdir

def find_csv_filenames( path_to_dir, suffix=".csv" ):
    filenames = listdir(path_to_dir)
    return [ filename for filename in filenames if filename.endswith( suffix ) ]

这个函数 find_csv_filenames() 会返回一个文件名的列表,这些文件名是字符串形式,存放在指定的目录 path_to_dir 中,并且文件名的后缀是你设定的(默认是“.csv”)。

补充说明

如何打印这些文件名:

filenames = find_csv_filenames("my/directory")
for name in filenames:
  print name
104

这段代码是用来处理一些数据的。它的主要功能是接收输入,然后根据特定的规则进行处理,最后输出结果。代码的结构通常包括一些函数和变量,函数就像是一个小工具,可以重复使用,而变量则是用来存储信息的容器。

在这段代码中,可能会有一些条件判断,比如“如果这个条件成立,就执行某个操作”,这就像是在说“如果天气好,我就去散步”。还有可能会有循环的部分,也就是重复做某件事情,直到满足某个条件,就像是你在做作业时,反复检查直到没有错误为止。

总之,这段代码的目的是为了让计算机按照我们的要求去处理数据,最终得到我们想要的结果。

import os
import glob

path = 'c:\\'
extension = 'csv'
os.chdir(path)
result = glob.glob('*.{}'.format(extension))
print(result)

撰写回答