为什么python用东部字符写入我的CSV文件?

时间:2018-11-02 14:52:55

标签: python python-3.x csv

也许我很愚蠢,缺少一些东西,我没有使用CSV文件的丰富经验,但是我有一个文件管理器,其内容为: 名称编码器ID证书类型

我想像这样将文本转换为新文件: 名称”,“编码器ID”,“证书类型

但是它是这样转换的: 名称Ⱒ∠䌀漀搀攀爀ⴀ䤀䐀∀‬“证书类型

我的代码是:

import csv

#File Setup
def setup():
    userAnswers = open('My Report.csv', 'r+')
    userAnswers2 = open('My ReportNew.csv', 'w')

    for line in userAnswers:
        userAnswers2.write(line.replace('\t', '", "' ))


#Set up Run
setup()

PS:这些单词被分开了,但是这个网站似乎没有让我在我的帖子中加上单词。预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

因此,您想将标签从制表符转换为带引号的字段吗?

import csv

with open('input.csv','r',newline='') as inf,open('output.csv','w',newline='') as outf:
    r = csv.reader(inf,delimiter='\t')
    w = csv.writer(outf,quoting=csv.QUOTE_ALL)
    for line in r:
        w.writerow(line)

输入(制表符分隔):

Name    Coder-ID Certificate Type
Mark    abc      abcdef      1
Mark    abc      abcdef      1
Mark    abc      abcdef      1

输出:

"Name","Coder-ID","Certificate Type"
"Mark","abc","abcdef","1"
"Mark","abc","abcdef","1"
"Mark","abc","abcdef","1"

如果您仍然无法使用编码,请在open语句中使用encoding='utf8'参数(或其他实际编码)显式指定文件的编码。