如何从指定文件读取文件名并将.rpt文件转换为CSV?
问题:.rpt文件转CSV时出现文件找不到错误
我有一个名为list_csv的文件,里面包含两个文件名:hierarchy1.rpt、hierarchy2.rpt。我想把这些.rpt文件转换成CSV格式,写了如下代码:
file2 = open('list_csv', 'r') Lines1 = file2.readlines() for line in Lines1: dataframe1 = pd.read_csv(line) read_file.to_csv(line)
运行后出现以下错误:
FileNotFoundError: [Errno 2] File b'hierarchy2.rpt\n' does not exist: b'hierarchy1.rpt\n'
错误原因
- 换行符残留:
readlines()读取的每一行末尾会自带换行符\n,导致程序尝试打开的文件名是hierarchy1.rpt\n这种带无效字符的名称,系统无法识别。 - 变量名不匹配:代码中用
dataframe1接收读取的文件,但后续调用了未定义的read_file变量,属于语法逻辑错误。 - 输出命名问题:直接用原.rpt文件名保存CSV,会覆盖原文件,不符合格式转换的需求。
修正后的代码
import pandas as pd # 用with语句自动管理文件资源,读取每行并清理无效字符 with open('list_csv', 'r') as file2: for line in file2: # 去除换行符、空格等空白字符 rpt_filename = line.strip() # 跳过空行 if not rpt_filename: continue # 读取.rpt文件(假设.rpt为CSV兼容的文本格式) df = pd.read_csv(rpt_filename) # 生成对应CSV文件名,替换后缀 csv_filename = rpt_filename.replace('.rpt', '.csv') # 保存为CSV,关闭索引输出 df.to_csv(csv_filename, index=False)
关键修正点
- 用
strip()清理每行的换行符和空白,确保文件名正确。 - 使用
with语句自动关闭文件,避免资源泄漏。 - 统一变量名,修复未定义变量的问题。
- 生成独立的CSV文件名,避免覆盖原.rpt文件。
内容的提问来源于stack exchange,提问作者Aakriti Goel
相关产品推荐
相关产品推荐

