Pandas多文件合并忽略文件未找到错误却无输出问题求助
问题原因
你的代码把两个文件的读取逻辑都放在同一个try块里,只要第一个文件不存在触发FileNotFoundError,整个try块就会立刻终止,直接跳到except分支执行,第二个文件的读取、处理逻辑根本没机会运行,所以只会打印"not found",不会输出第二个文件的数据。
修复方案
把每个文件的读取操作单独做异常处理,逐个尝试读取,只保留成功读取的DataFrame,最后再合并:
import pandas as pd # 初始化空列表,存放成功读取并处理后的DataFrame valid_dfs = [] # 处理第一个文件 try: df_t = pd.read_csv('C:\\...\\aa_kk.CSV', dtype=str) df_t_e = pd.DataFrame(df_t, columns=['CO','MD','PS','PE','PO']) valid_dfs.append(df_t_e) except FileNotFoundError: pass # 文件不存在就跳过 # 处理第二个文件 try: df_u = pd.read_csv('C:\\....\\bb_jj.CSV', dtype=str) df_u_e = pd.DataFrame(df_u, columns=['CO','MD','PS','PE','PO']) valid_dfs.append(df_u_e) except FileNotFoundError: pass # 文件不存在就跳过 # 如果有有效数据就合并输出,否则提示 if valid_dfs: result_tu = pd.concat(valid_dfs) print(result_tu) else: print('没有找到任何有效文件')
代码说明
- 每个文件单独用
try-except捕获FileNotFoundError,避免一个文件失败影响另一个 - 用
valid_dfs列表收集所有成功读取并处理后的DataFrame - 最后判断列表是否为空,有数据就合并输出,没有才提示文件未找到
内容的提问来源于stack exchange,提问作者Krispy
相关产品推荐
相关产品推荐

