使用 excel 保存 csv,以便 python 可以正确追加行
Saving a csv with excel so python can append rows correctly
当我从 excel(Mac 版本 15.17)保存 csv 文件时,用 python 附加新行无法按预期工作
e.g.I 将此文件保存在 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)
当我从 excel(Mac 版本 15.17)保存 csv 文件时,用 python 附加新行无法按预期工作
e.g.I 将此文件保存在 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)