我得到了这种CSV,它不是CSV。让我来解释一下。输出有column_name,value
。
created_at,2022-02-10T16:53:49+01:00
updated_at,2022-04-28T00:35:30+02:00
timezone,Europe/Berlin
我需要将其转换为excel友好的csv。因此所需的输出将是:
"created_at","updated_at","timezone"
"2022-02-10T16:53:49+01:00","2022-04-28T00:35:30+02:00","Europe/Berlin"
我找到了一个方法,使用这个代码:
pd.read_csv('in.txt', header=None).T.to_csv('output.csv', header=False, index=False)
输出如下文件:
created_at,updated_at,timezone
2022-02-10T16:53:49+01:00,2022-04-28T00:35:30+02:00,Europe/Berlin
这可能没问题,但是不行,每一行都缺少双引号,而且每一行的CR也都缺少。当我用excel打开CSV文件时,点击DATA>TEXT TO COLUMN并尝试像表一样排序,由于缺少双引号和CR,无法工作。
我需要处理一个2MB的文件,我试图自动完成它,但我没有找到一个合适的方法来做。
除非您正在使用Pandas做其他事情,否则没有必要在这种情况下使用它:stdlibcsv
模块允许完全控制输出格式。
在Python中只需要:
import csv
with open("input_file.csv") as input, open("output_file.csv", "wt") as output:
writer = csv.writer(output, quoting=csv.QUOTE_ALL)
writer.writerows(csv.reader(input))
文档中有一些关于所有格式化选项的间接说明,但它们在CSV模块部分的末尾:https://docs.python.org/3/library/csv.html csv-fmt-params