在命名中读取具有特定字符的多个csv文件

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

我在一个文件夹中有多个csv文件,其中一些以'xxxxx.t01.csv'结尾。现在我要做的是在panda中创建一个数据框列表,其中包含所有这些带有'.t01.csv'结尾的文件。我尝试使用fnmatch和globe2,但没有一个工作。 (我使用python 3.7)。这是我的代码:

import os, fnmatch
import pandas as pd

list_of_files = os.listdir('C:\\Users\\My_PC\\Desktop\\new folder')   
for entry in list_of_files:  
    if fnmatch.fnmatch(entry, '*t01.csv'):
       df=pd.read_csv(entry)

       print(df[])

我收到了这个错误:

enter image description here

然后我尝试使用glob2,但我无处可去。

import pandas as pd
import glob2

path = r''C:\\Users\\My_PC\\Desktop\\new folder''
all_files = glob2.glob(path + "*t01.csv")


for filename in all_files:

    df = pd.read_csv(filename, index_col=None, header=0)
    print(df)   

但它什么都不会显示出来。有人能告诉我问题是什么吗?

python pandas csv python-3.7
2个回答
0
投票

使用os.chdir()glob

os.chdir('C:\\Users\\My_PC\\Desktop\\new folder\\')
all_files = glob.glob("*t01.csv")

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    print(df)
    print("---------seperator--------------")

将它们一起添加到一个数据框中:refer to this lnk


0
投票

该错误是不言自明的,它无法在当前目录中找到文件名。要解决问题,请在完整文件路径中传递,或使用os.chdir(path)更改当前工作目录,这是不推荐的。使用os.path.join()替换如下文件名

pd.read_csv(os.path.join(path,filename), index_col=None, header=0)
© www.soinside.com 2019 - 2024. All rights reserved.