在for循环中使用熊猫csv_read读取csv文件

时间:2020-04-07 09:35:23

标签: python excel pandas csv for-loop

我将Macbook与MAC OS X catalina和最新的anaconda安装一起使用。

我有很多文件的文件夹中有要读取的文件列表。文件列表包含在excel表格中,格式如下。

list.xlsx

此文件称为list.xlsx

csv文件的目录和子目录位于文件夹中,如下所示"/Users/XXX/Documents/test/data"

该目录中还有许多我不想使用的文件,因此我想循环浏览此列表。我拥有的文件数量为xlsx。

当我执行df = pd.csv_read("/Users/XXX/Documents/test/data/A/ABCS.csv")时,文件读得很好。这是我列表中的第一个文件。

但是,当我以这种方式加载文件时,可以执行for循环

filelist = pd.read_excel("/Users/XXX/Documents/test/list.xlsx")

df = pd.csv_read(f"/Users/XXX/Documents/test/data/{filelist.File[0]}")

我得到一个'FileNotFoundError: [Error 2] File /Users/XXX/Documents/test/data/A/ABCS.csv does not exist:/Users/XXX/Documents/test/data/A/ABCS.csv'

即使它显示了我上面使用的确切位置。为什么会发生这种情况,我该如何解决?似乎当我使用pandas加载文件名时,无法正确读取。

2 个答案:

答案 0 :(得分:0)

这可以解决:

filelist = pd.read_excel("/Users/XXX/Documents/test/list.xlsx")
DF = []
for i in range(len(filelist)):
    file = str(filelist[i])
    df = pd.read_csv(file, index_col=None, header=0)
    DF.append(df)

#combine all files
DF = pd.concat(DF, axis=0, ignore_index=True)

答案 1 :(得分:0)

Serge Ballesta说我不应该盲目地信任打印的字符串,我按照他的建议在文件列表(File [0]]中运行了print([(i,hex(ord(i))))for i)在文件名之后是一串空格,这弄乱了读取功能。