导出为 CSV,它会覆盖或附加 header 并为每个新行逐行
Export to CSV, it overwrite or append header and line each for every new row
这是一个包含多个值的大数据库,我有一个脚本,它逐行读取并创建一个包含数据的新行以导出到 CSV 文件。
新行被传递给一个在内部创建 CSV 文件然后尝试写入新行的函数,结果不完全是我需要的。
我尝试了几种方法并检查了论坛上的其他问题,仍然发现了不同的输出,但不是预期的。
我试过这些:
1-
with open(csv_file, 'wb') as csvfile:
或 with open(csv_file, 'ab') as csvfile:
结果:TypeError: a bytes-like object is required, not 'str'
2-
with open(csv_file, 'a') as csvfile:
结果
IMSI,MSISDN,
VAL01,VAL02
IMSI,MSISDN,
VAL03,VAL04
IMSI,MSISDN,
VAL05,VAL06
IMSI,MSISDN,
VAL07,VAL08
3-
with open(csv_file, 'w') as csvfile:
IMSI,MSISDN,
VAL07,VAL08
结果 3 是合乎逻辑的,文件正在被覆盖,它不会附加下一行,后续值保持新行之前的行
if with
statement separate writer.writerow(val)
我打破了它的意义 return ValueError: I/O operation on closed file.
函数换行是
def escribir(val):
print(type(val))
with open(csv_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
writer.writerow(val)
我检查了传递值的类型,在 CSV 上写入是正确的
我希望在 CSV 文件中写入传递给函数的每个不同的新行,不重复 header,不在行之间换行。
您是否为同一个输出 csv 文件多次调用 def escribir(val)
?
如果是这种情况,请从此函数中删除 writer.writeheader()
。
写一个单独的 function/code 代码片段,只写一次 header 信息。
这是一个包含多个值的大数据库,我有一个脚本,它逐行读取并创建一个包含数据的新行以导出到 CSV 文件。 新行被传递给一个在内部创建 CSV 文件然后尝试写入新行的函数,结果不完全是我需要的。
我尝试了几种方法并检查了论坛上的其他问题,仍然发现了不同的输出,但不是预期的。 我试过这些:
1-
with open(csv_file, 'wb') as csvfile:
或 with open(csv_file, 'ab') as csvfile:
结果:TypeError: a bytes-like object is required, not 'str'
2-
with open(csv_file, 'a') as csvfile:
结果
IMSI,MSISDN,
VAL01,VAL02
IMSI,MSISDN,
VAL03,VAL04
IMSI,MSISDN,
VAL05,VAL06
IMSI,MSISDN,
VAL07,VAL08
3-
with open(csv_file, 'w') as csvfile:
IMSI,MSISDN,
VAL07,VAL08
结果 3 是合乎逻辑的,文件正在被覆盖,它不会附加下一行,后续值保持新行之前的行
if with
statement separate writer.writerow(val)
我打破了它的意义 return ValueError: I/O operation on closed file.
函数换行是
def escribir(val):
print(type(val))
with open(csv_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
writer.writerow(val)
我检查了传递值的类型,在 CSV 上写入是正确的
我希望在 CSV 文件中写入传递给函数的每个不同的新行,不重复 header,不在行之间换行。
您是否为同一个输出 csv 文件多次调用 def escribir(val)
?
如果是这种情况,请从此函数中删除 writer.writeheader()
。
写一个单独的 function/code 代码片段,只写一次 header 信息。