循环浏览文件夹中的所有 CSV 文件

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

我试图仅循环遍历包含多种文件和许多文件夹的文件夹中的 csv 文件,我只想列出该文件夹中的所有 .csv 文件。

这就是我的意思:

import os, sys

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

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

我知道Python中没有通配符变量,但是有没有办法做到这一点?

python
4个回答
59
投票

使用 glob 模块:http://docs.python.org/2/library/glob.html

import glob
path = "path/to/dir/*.csv"
for fname in glob.glob(path):
    print(fname)

47
投票

Python 提供了

glob
可以做到这一点

>>> import glob
>>> glob.glob('/path/to/dir/*.csv')

返回与路径名匹配的可能为空的路径名列表,其中 必须是包含路径规范的字符串。路径名可以是 绝对的(如 /usr/src/Python-1.5/Makefile)或相对的(如 ../../Tools//.gif),并且可以包含 shell 样式的通配符。破碎的 符号链接包含在结果中(如在 shell 中)。


3
投票

我试图循环遍历包含 cvs 文件的文件夹并打印列的编号和名称。 以下代码对我有用

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)

0
投票

这是另一种简单的方法:

import os

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

for file in dirs:
    if file.endswith(".csv"):
        print(file)
© www.soinside.com 2019 - 2024. All rights reserved.