我有一个具有这种形式的列表
[['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'
的形式打开。
答案 0 :(得分:0)
您注意到,某些字符串包含 \ n char s。
“ \ n ”(或 ASCII 0x0A ( 10 )或 LF (换行符)),是一种特殊字符,在写入这样的字符串时会被解释。为了解决您的问题,您可以:
手动转义“ n”之前的任何“ \ ”( bkslash )字符”,这样“ \ n ”将成为由 2 char s(“ \ ”和“ n ”)。转换为代码后,您应该替换最后一行,方法是(假设 textExport 内容粘贴在开头):
escapedTextExport = [[item.replace("\n", "\\n") for item in row] for row in textExport]
exportCSV(escapedTextExport, "textExport")