如何调整Python代码将Debit与Credit数据写入CSV并解决报错
解决CSV写入时"UnsupportedOperation: not readable"错误
错误根源
这个错误的核心原因完全是文件打开模式不对——你大概率用了只读模式('r')打开文件,却试图执行写入操作,系统自然会拒绝。
两种可行解决方案
方案1:修正csv模块的用法(如果你坚持用csv模块)
先确保你用写入模式打开文件,同时指定正确的编码和换行符,再传入你筛选后的Debit/Credit数据:
import csv import pandas as pd # 假设你已经完成数据读取、清洗、筛选,得到了目标DataFrame:filtered_df # 把DataFrame转成csv可识别的行格式(含表头) output_rows = [filtered_df.columns.tolist()] + filtered_df.values.tolist() # 关键:用'w'(覆盖写入)或'a'(追加写入)模式打开文件,加newline=''避免空行 with open('financial_output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerows(output_rows)
方案2:用pandas自带的to_csv(更简洁,推荐)
既然已经在用pandas处理数据,没必要额外调用csv模块,pandas的to_csv方法直接帮你搞定所有细节:
# 假设filtered_df是你筛选后包含Debit、Credit列的目标DataFrame filtered_df.to_csv('financial_output.csv', index=False, # 不写入行索引,避免多余列 columns=['Debit', 'Credit'], # 可选:只写入指定列 encoding='utf-8')
关键变量说明
你需要用到的核心变量是经过pandas清洗、筛选后的DataFrame(比如代码里的filtered_df)——就是你之前能正常打印出目标Debit/Credit记录的那个数据集。
内容的提问来源于stack exchange,提问作者n3cr05c0p3
相关产品推荐
相关产品推荐

