如何使用Python写入csv文件时防止数据自动转换为日期?

时间:2018-01-03 12:19:01

标签: python python-3.x csv

我必须使用python将一些行附加到csv文件中。

这是我的代码。

import csv

# Variable row contains records of all users similar to this below
# ["Name", "City", "Email", "Average", "Total", "Grade", "Remarks"]


with open("file.csv", "a", newline = "") as f:
    writer = csv.writer(f)
    for item in row:
        writer.writerow(item)
f.close()

我在这里遇到的问题是“平均”是“10/2”或有时“28/4”等形式。

第一个参数是平均分数(10),第二个参数是案例(10/2)的尝试次数(2)。

当我使用上面的代码将这些数据写入csv文件时,它会自动转换如下。

“10/2”---> “2月10日”
“28/4”---> “4月28日”

2 个答案:

答案 0 :(得分:3)

这不是由Python完成的 - 如果您在任何文本编辑器中打开CSV文件,您将按计划看到数据。

负责解释文本,例如" 28/2"因为日期是程序,你打开CSV。如果它是Microsoft Excel,它就在那里进行转换。

检查导入CSV文件时是否有选项以禁用转换或在打开时选择每列的数据类型。

在Python方面,您可以尝试对所有单元格强制执行引号。我们无法保证Excel能够正常运行,但您可以尝试使用此选项创建您的编写器:

writer = csv.writer(f, quoting=csv.QUOTE_ALL)

答案 1 :(得分:1)

这不是python的错,是Excel的错。在 Excel 中,选择一列并按 ctrl+1 选择您的文本类型。例如,选择文本。 enter image description here