在处理文件时遇到了一个简单又繁琐的事情:
一共有48个csv文件,每个文件的第一行是标题行。要求删除所有csv文件的第一行内容,剩余内容不变。
文件名类似:
文件内容中首行都有一样的标题
在网上找的代码为
with open(r'C:\Users\sheet1.csv', 'r') as f,open(r'C:\2\sheet1.csv', 'w') as f1:
next(f) # skip header line
for line in f:
f1.write(line)
路径部分为文件的绝对路径。
因为有48个csv文件需要修改,因此需要写一个for循环。
for i in range(1,49):
with open(r'C:\Users\sheet%d.csv'%i, 'r') as f,open(r'C:\2\sheet%d.csv'%i, 'w') as f1:
next(f) # skip header line
for line in f:
f1.write(line)
此时我们运行一下代码,出现了Unicode解码错误:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 10: illegal multibyte sequence
for i in range(1,49):
with open(r'C:\Users\csv\sheet%d.csv'%i, 'r', encoding="utf-8") as f, open(
r'C:\Users\csv\2\sheet%d.csv'%i, 'w', encoding="utf-8") as f1:
next(f) # skip header line
for line in f:
f1.write(line)
使用open函数时,加上参数encoding=定义为“utf-8”即可。