在文件夹中遍历所有CSV文件

35

我想循环遍历一个包含各种文件和文件夹的目录,但我只想列出该目录中所有的 .csv 文件。

这是我的意思:

import os, sys

path = "path/to/dir"
dirs = os.listdir(path)

for file in dirs:
    if file == '*.csv':
        print file

我知道Python中没有通配符变量,但有没有其他方法来实现这个功能?

3个回答

59

47

Python提供了glob,它应该可以做到这一点。

>>> import glob
>>> glob.glob('/path/to/dir/*.csv')
返回一个可能为空的路径名列表,这些路径名与路径名匹配,路径名必须是包含路径规范的字符串。路径名可以是绝对的(如/usr/src/Python-1.5/Makefile),也可以是相对的(如../../Tools//.gif),并且可以包含shell样式的通配符。破损的符号链接包括在结果中(就像在shell中一样)。

3

我试图循环遍历包含CSV文件的文件夹,并打印列的编号和名称。以下代码适用于我:

import pandas as pd
import glob
path = r"C:\Users\gumnwe\OneDrive - BP\Desktop\Personal\eiLink\Skin Project\Skin_Project_Data_2020\*.csv"
for fname in glob.glob(path):
   df=pd.read_csv(fname)
   my_list=list(df.columns)
   print(len(my_list),my_list)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接