with open(csv_path,“a+“,encoding=“utf-8“) as f

with open(csv_path,“a+”,encoding=“utf-8”) as f:

Python 文件操作中的读写模式:open(path, ‘-模式-’,encoding=‘UTF-8’)

open(path, ‘-模式-‘,encoding=’UTF-8’)
即open(路径+文件名, 读写模式, 编码)

在python对文件进行读写操作的时候,常常涉及到“读写模式”,整理了一下常见的几种模式,如下:

读写模式:

r :只读

r+ : 读写

w : 新建(会对原有文件进行覆盖)

a : 追加

b : 二进制文件

常用的模式有:

“a” 以“追加”模式打开, (从 EOF 开始, 必要时创建新文件)

“a+” 以”读写”模式打开

“ab” 以”二进制 追加”模式打开

“ab+” 以”二进制 读写”模式打开

“w” 以”写”的方式打开

“w+” 以“读写”模式打开

“wb” 以“二进制 写”模式打开

“wb+” 以“二进制 读写”模式打开

“r+” 以”读写”模式打开

“rb” 以”二进制 读”模式打开

“rb+” 以”二进制 读写”模式打开

rU 或 Ua 以”读”方式打开, 同时提供通用换行符支持 (PEP 278)

需注意:
1、使用“w”模式。文件若存在,首先要清空,然后重新创建

2、使用“a”模式。把所有要写入文件的数据都

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化建议如下: 1. 将代码块封装成一个函数,提高代码的可重用性和可维护性。 2. 将常量和变量的命名方式统一,便于代码的阅读和理解。 3. 将文件路径的拼接方式改为os.path.join()方法,增强代码的跨平台兼容性。 4. 使用with语句打开文件,可自动管理文件资源,不需要手动关闭文件,简化代码。 5. 将csv文件读取和写入的编码方式改为'utf-8',避免出现文乱码问题。 6. 将写入csv文件的表头和数据分别存储在两个列表,遵循“单一职责原则”,增强代码的可读性和可维护性。 7. 将读取csv文件的代码块修改为生成器表达式,节省内存开销。 8. 将写入csv文件的操作放在try...except块,避免出现写入失败的情况。 优化后的代码如下所示: ```python import os import csv def combine_csv_files(src_dir, dest_file): csv_head = ['name', 'aaa', 'bbb'] data_rows = [] try: for file_name in os.listdir(src_dir): if file_name.endswith('.csv'): file_path = os.path.join(src_dir, file_name) with open(file_path, 'r', encoding='utf-8') as f: reader = csv.reader(f) next(reader) # skip header data_rows.extend(reader) # append rows to data list with open(dest_file, 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(csv_head) writer.writerows(data_rows) print(f'CSV files in {src_dir} are combined into {dest_file}') except Exception as e: print(f'Error occurs: {e}') if __name__ == '__main__': src_dir = r'D:\csv_test' dest_file = r'D:\csv_test\excle汇总.csv' combine_csv_files(src_dir, dest_file) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值