无法在python中使用csv.writer获得所需的输出

时间:2013-11-15 15:23:25

标签: python csv

我花了一整天的时间试图找到解决这个问题的方法,因为我找不到一个,但是我来这里是为了你的帮助!

我正在python上编写一个CSV文件导出器,我无法将其输出到我想要的地方

假设我有一个包含多个教程标题的字符串列表:

    tutorials = ['tut1', 'tut2, 'tut3']

我想在csv文件的第一行打印,如下所示:

    First Name, Surname, StudentID, tut1, tut2, tut3

现在,这是我写的代码:

    tutStr= ' '
    for i tutorials:
          tutStr += i + ', '
    tutStr = tutStr[0:-3]

    with open('CSVexport.csv', 'wb') as csvFile:
            writer = csv.writer(csvFile, delimiter=',', quoting=csv.QUOTE_NONE)
            writer.writerow(['First Name'+'Surname'+'ID number'+tutStr)

这给了我错误:
“writer.writerow(['First Name'+'Surname'+'ID number'+ labString])                            错误:需要转义,但没有escapechar设置“

现在,我知道错误与csv.QUOTE_NONE有关,我必须设置一个escapechar,但我真的不明白我该怎么做。

如果我在没有QUOTE_NONE的情况下尝试,它会自动将quotechar设置为'“',这将为我提供此输出

    "First Name, Surname, StudentID, tut1, tut2, tut3"   --> don't want quotation marks!!!

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果你要用writer编写一些东西,你需要在那里传递一个列表,而不是包含一个用逗号分隔的大字符串的列表(它将在一个单元格中显示为一个字符串)。 quoting=csv.QUOTE_MINIMAL将有助于引用需要引用的字符串。

tutorials = ['tut1', 'tut2', 'tut3']
headers = ['First Name', 'Surname', 'ID number'] + tutorials
first_line = True
with open('CSVexport.csv', 'w') as csvFile:
        writer = csv.writer(csvFile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
        if first_line:
           writer.writerow(headers)
           first_line = False