导出到csv时如何跳过\ n符号?

时间:2019-02-03 22:54:38

标签: python python-2.7 csv

我有一个具有这种形式的列表

[['url', 'date', 'extractRaw', 'extractClean'], ['https://www.congress.gov/crec/2017/01/09/CREC-2017-01-09-senate.pdf', '20170109', 'UR\n\nIB\nU\n\nU\n\nE PL\n\nNU\n\nCo', '20170109', 'URIBUUE PLNUCo'], ['https://www.congress.gov/crec/2017/01/09/CREC-2017-01-09-senate.pdf', '20170109', 'UR\n\nIB\nU\n\nU\n\nE PL\n\nNU\n\nCo', '20170109', 'UURIBUUE PLNUCo']]

我正在使用此代码将其导出到CSV

def exportCSV(flatList, filename):
    with open(filename+".csv", "wb") as f:
        writer = csv.writer(f)
        writer.writerows(flatList)

exportCSV(textExport,'textExport')

此版本沿新行显示,最后以CSV格式显示,它会为每个\n符号读取新行。

我的愿望是将列表中的每个条目放在自己的单独行中。看起来像这样

url    date     extractRaw    extractClean
https://www.congress.gov/crec/2017/01/09/CREC-2017-01-09-senate.pdf    20170109    UR\n\nIB\nU\n\nU\n\nE PL\n\nNU\n\nCo    URIBUUE PLNUCo
https://www.congress.gov/crec/2017/01/09/CREC-2017-01-09-senate.pdf    20170109    UR\n\nIB\nU\n\nU\n\nE PL\n\nNU\n\nCo    URIBUUE PLNUCo
https://www.congress.gov/crec/2017/01/09/CREC-2017-01-09-senate.pdf    20170109    UR\n\nIB\nU\n\nU\n\nE PL\n\nNU\n\nCo    URIBUUE PLNUCo

writer.writerows()支持吗?我可以忽略新的线符号吗?

这不是重复的。 \n是文本块的一部分,文件以'wb'的形式打开。

1 个答案:

答案 0 :(得分:0)

您注意到,某些字符串包含 \ n char s。

\ n ”(或 ASCII 0x0A 10 )或 LF 换行符)),是一种特殊字符,在写入这样的字符串时会被解释。为了解决您的问题,您可以:

  • 将字符串设为 raw (不知道这是多么可行)。无论如何,请查看[Python 2]: String literals
  • 手动转义 n”之前的任何“ \ ”( bkslash )字符”,这样“ \ n ”将成为由 2 char s(“ \ ”和“ n ”)。转换为代码后,您应该替换最后一行,方法是(假设 textExport 内容粘贴在开头):

    escapedTextExport = [[item.replace("\n", "\\n") for item in row] for row in textExport]
    
    exportCSV(escapedTextExport, "textExport")