Python合并指定目录CSV文件无输出无报错,求助代码排查
帮你排查CSV合并脚本的问题
嘿,作为Python初学者遇到这种问题很正常,我帮你检查了代码,发现几个关键问题导致脚本没输出也没报错,咱一个个说清楚:
问题1:路径的转义坑
Windows路径里的\在Python字符串里是转义字符(比如\n代表换行),你写的C:\Users\Vincentc\Desktop\W1里,\U会被Python当成Unicode转义的开头,容易触发隐性错误。解决办法是用原始字符串(在路径前加r),或者把\换成\\。
问题2:glob匹配写错了
你写的glob.glob("indir")是在找名为indir的文件,而不是目标文件夹里的所有CSV文件!应该改成glob.glob("*.csv"),这样才能匹配文件夹里所有后缀为.csv的文件。
问题3:定义了函数但没调用
你只写了concatenate函数的定义,但从来没执行它!脚本运行时只是加载了函数,根本没触发合并操作,所以什么都不会发生。
修正后的完整代码
import os import glob import pandas def concatenate(indir=r"C:\Users\Vincentc\Desktop\W1", outfile=r"C:\Users\Vincentc\Desktop\W2\conca.csv"): # 切换到目标文件夹 os.chdir(indir) # 匹配当前文件夹下所有CSV文件 file_list = glob.glob("*.csv") df_list = [] # 遍历每个CSV文件并读取 for filename in file_list: print(f"正在处理文件: {filename}") # 打印正在处理的文件,方便排查 df = pandas.read_csv(filename, header=None) df_list.append(df) # 合并所有DataFrame if df_list: # 先判断有没有读取到文件,避免空列表合并 concat_df = pandas.concat(df_list, axis=0) concat_df.to_csv(outfile, index=None, header=None) # 加上header=None,避免自动加表头 print("合并完成,结果已保存到", outfile) else: print("没有找到任何CSV文件,请检查路径是否正确!") # 调用函数执行合并操作 concatenate()
我还加了几个小优化:
- 变量名改成更符合Python规范的小写下划线格式(比如
fileList→file_list) - 增加了文件存在性判断,避免空列表合并产生空文件
- 打印处理过程和结果提示,方便你知道脚本在做什么
内容的提问来源于stack exchange,提问作者VinC
相关产品推荐
相关产品推荐

