将多个.xls文件合并为.csv时遇TypeError错误求助
解决多个.xls文件合并为.csv的问题
错误原因
你碰到的TypeError是因为glob.glob(location + "\*.xls")返回的是文件路径列表,而pd.read_excel()需要单个文件路径字符串,直接用location + file_xls试图把字符串和列表拼接,Python不允许这种操作。
正确实现代码
import glob import pandas as pd # 获取所有目标xls文件的完整路径 file_xls = glob.glob(location + "*.xls") # 用列表存储每个Excel文件读取后的DataFrame df_collection = [] for file_path in file_xls: # 逐个读取Excel文件,可根据实际情况调整header参数(比如header=0指定第一行为表头) single_df = pd.read_excel(file_path) df_collection.append(single_df) # 合并所有DataFrame,ignore_index=True重置索引避免重复 merged_df = pd.concat(df_collection, ignore_index=True) # 导出为CSV,index=False不保留行索引,utf-8-sig解决Excel打开乱码问题 merged_df.to_csv("合并结果.csv", index=False, encoding="utf-8-sig")
关键细节说明
glob.glob已经返回完整的文件路径,不需要再和location拼接,直接传给pd.read_excel()就行- 如果你的各个Excel文件表头不一致,可以先统一表头再合并,或者在
pd.read_excel里用header=None自定义表头 - 要是Excel文件有多个工作表,可在
pd.read_excel里加sheet_name参数指定目标工作表
内容的提问来源于stack exchange,提问作者Mathéo Pérez
相关产品推荐
相关产品推荐

