当我从 excel(Mac 版本 15.17(保存 csv 文件时,使用 python 附加新行无法按预期工作
例如,我将此文件保存在 excel 中:
col1 col2 col3
-----------------
1234 1234 1234
1234 1234 1234
我用python附加这些行
5678 5678 5678
5678 5678 5678
我得到:
col1 col2 col3
1234 1234 1234
1234 1234 12345678 5678 5678
5678 5678 5678
好像 excel 错过了最后一个换行符。有没有办法解决这个问题,而无需在每个 excel 文件的末尾手动添加(使用代码(换行符。
使用文本编辑器打开文件并添加换行符可以解决问题,但这是一个可怕的解决方法。
python 中用于将一行附加到 csv 的代码:
with file(append_to_this_csv.csv, 'a') as writefile:
writer = csv.writer(writefile)
row = [[5678,5678,5678]]
writer.writerows(row)
尝试在 Python 脚本中添加尾随换行符,而不是使用文本编辑器:
def fix_trailing_newline(fname):
with open(fname, "r+") as f:
f.seek(-1, 2)
if(f.read() != 'n'):
f.seek(0, 2)
f.write('n')
或者,您可以更改将行追加到 csv 文件的方式。您可以读入整个文件,将行追加到内存中,然后写入整个文件:
def append(fname, data):
with open(fname) as f:
reader = csv.reader(f)
data = list(reader) + list(data)
with open(fname, 'w') as f:
writer = csv.writer(f)
writer.writerows(data)