首页 > 解决方案 > Python 代码编译,但没有发生任何事情

问题描述

我试图将一个目录中的多个 csv 文件附加到另一个目录中的单个文件中。当我运行此代码时,它似乎编译成功,但没有生效。每次运行后该combined.csv文件保持为空。控制台中也没有错误。我在多个 IDE(vs code、pycharm 和 spyder)上尝试了这个。

import os
import glob    
import pandas

def concatenate(indir="/directoryA/directoryB/csvFile_directoryC",
                outfile="/directoryA/directoryB/combine.csv"):
    os.chdir(indir)
    filelist=glob.glob("*.csv")
    dfList=[]
    colnames=["c1","c2","c3","c4"]
    for filename in filelist:
        print(filename)
        df=pandas.read_csv(filename,header=None)
        dfList.append(df)
    concatDf=pandas.concat(dfList,axis=0)
    concatDf.columns=colnames
    concatDf.to_csv(outfile,index=None)

标签: pythonpython-3.xcsv

解决方案


如果不是上面所说的(即您需要调用该函数),您实际上可能无法在该目录中找到任何 *.csv 文件。由于它是文件列表的 for 循环,因此如果文件列表为空,您仍然会留下 dfList,它是一个空列表,但对于 concat 上的 concatDf 仍然有效。

如果不是函数从未被调用过,请尝试从 os.listdir() 打印结果以查看其中有什么供 glob 检查,并检查您的文件列表是否不是空列表。


推荐阅读