gpt4 book ai didi

Python 的 csv.writerow() 有点古怪

转载 作者:太空狗 更新时间:2023-10-29 20:43:56 27 4
gpt4 key购买 nike

根据我的研究,csv.writeRow 应该接受一个列表,然后将其写入给定的 csv 文件。这是我尝试过的:

from csv import writer
with open('Test.csv', 'wb') as file:
csvFile, count = writer(file), 0
titles = ["Hello", "World", "My", "Name", "Is", "Simon"]
csvFile.writerow(titles)

我只是想把它写成每个单词都在不同的列中。

但是,当我打开它创建的文件时,我收到以下消息:

enter image description here

无论如何按继续,我收到一条消息说文件已损坏,或者是 SYLK 文件。然后我可以打开文件,但只有在每次打开文件时都经过两条错误消息后才能打开。

这是为什么?

谢谢!

最佳答案

这是一个documented issue如果前两个字符是“ID”,Excel 将假定 csv 文件是 SYLK。

冒险进入意见领域 - 它不应该,但 Excel 认为它比扩展更了解。公平地说,人们希望它能够找出扩展名确实错误的情况,但在这种情况下,假设扩展名是错误的,然后进一步假设文件已损坏,但如果解释它似乎没有损坏根据扩展名,这简直令人难以置信。

@John Y 指出:

One thing to watch out for: The "workaround" given by the Microsoft issue linked to by @PeterDeGlopper is to (manually) prepend an apostrophe into the file. (This is also advice commonly found on the Web, including StackOverflow, to try to force CSV digits to be treated as strings rather than numbers.) This is not what I'd call good advice, as that injects a literal apostrophe into your data.

@DSM 建议对作者使用 quoting=csv.QUOTE_NONNUMERIC。 Excel 不会被以 "ID" 而不是 ID 开头的文件混淆,因此如果要使用 CSV 的其他工具接受该引用级别,这可能是除了忽略 Excel 的困惑之外的最佳解决方案。

关于Python 的 csv.writerow() 有点古怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113975/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com