使用Python合并csv文件

使用Python合并csv文件,python,csv,Python,Csv,我开始学习Python,我想合并csv文件。我发现了以下代码: from os import chdir from glob import glob import pandas as pdlib # Produce a single CSV after combining all files def produceOneCSV(list_of_files, file_out): # Consolidate all CSV files into one object result_o

我开始学习Python,我想合并csv文件。我发现了以下代码:

from os import chdir
from glob import glob
import pandas as pdlib

# Produce a single CSV after combining all files
def produceOneCSV(list_of_files, file_out):
   # Consolidate all CSV files into one object
   result_obj = pdlib.concat([pdlib.read_csv(file) for file in list_of_files])
   # Convert the above object into a csv file and export
   result_obj.to_csv(file_out, index=False, encoding="utf-8")

# Move to the path that holds our CSV files
csv_file_path = 'c:/Users/user/Desktop/DUT1'
chdir(csv_file_path)

# List all CSV files in the working dir
file_pattern = ".csv"
list_of_files = [file for file in glob('*.{}'.format(file_pattern))]
print(list_of_files)

file_out = "ConsolidateOutput.csv"
produceOneCSV(list_of_files, file_out)
但是当我试图编译它时,我得到了这些错误:

Traceback (most recent call last):
  File "C:\Users\user\Desktop\DUT1\test.py", line 26, in <module>
    produceOneCSV(list_of_files, file_out)
  File "C:\Users\user\Desktop\DUT1\test.py", line 12, in produceOneCSV
    result_obj = pdlib.concat([pdlib.read_csv(file) for file in list_of_files])
  File "C:\Python\Python385\lib\site-packages\pandas\core\reshape\concat.py", line 274, in concat
    op = _Concatenator(
  File "C:\Python\Python385\lib\site-packages\pandas\core\reshape\concat.py", line 331, in __init__
    raise ValueError("No objects to concatenate")
ValueError: No objects to concatenate
回溯(最近一次呼叫最后一次):
文件“C:\Users\user\Desktop\DUT1\test.py”,第26行,在
produceOneCSV(文件列表、文件输出)
文件“C:\Users\user\Desktop\DUT1\test.py”,第12行,在produceOneCSV中
result\u obj=pdlib.concat([pdlib.read\u csv(文件)用于\u文件列表中的文件])
concat中的文件“C:\Python\Python385\lib\site packages\pandas\core\reforme\concat.py”,第274行
op=\u串联器(
文件“C:\Python\Python385\lib\site packages\pandas\core\reforme\concat.py”,第331行,在\uuu init中__
raise VALUERROR(“没有要连接的对象”)
ValueError:没有要连接的对象
我不知道为什么它不起作用。
此外,我想删除除第一个文件之外的所有文件的标题。

我有一个类似的用例,我为其开发了此代码块。您可以这样尝试:

import pandas as pd
from glob import glob
import os

def joinCsvFiles(outFile, dirPath, filePattern="*.csv"):
    dfs = []

    globPattern = os.path.join(dirPath, filePattern)

    fileParts = glob(globPattern)

    for filePart in fileParts:
        df = pd.read_csv(filePart, index_col=False, header=0)
        dfs.append(df)

    print("[!]. Merging {} part files to create a consolidated file\n".format(len(dfs)))
    try:
        finalDf = pd.concat(dfs, sort=False)
        
        finalDf.to_csv(outFile, index=False)

        print ("[>]. Consolidated csv file generated successfully at filepath: '{}'\n".format(outFile))

    except Exception as e:
        raise e


if __name__ == '__main__':
    joinCsvFiles("finalReport.csv", "c:/Users/user/Desktop/DUT1", "*.csv")

感谢您的帮助zahid。我尝试了您的代码,但仍然得到关于pandas\io\parsers.py和pandas\u libs\parsers.pyx的错误。我忘了提到我的csv文件有标题,有些行比其他行具有更多的列