我在Python中编写了一个小脚本来接受类似于来自Excel的csv文件并将其输出为管道分隔文件。当遇到包含多行的单元格时,它当前会在行尾添加一个反斜杠(就像我指定的转义字符一样)并继续下一行的单元格。我想要做的是能够指定一个空格字符或一个字符串,新行将替换为反斜杠,并在同一行继续记录。我虽然遇到了一些麻烦。有没有一种简单的方法可以使用csv模块执行此操作?到目前为止我所拥有的:
fout = open (tfile, "wt")
cout = csv.writer(fout, delimiter = '|', quotechar = '', quoting = csv.QUOTE_NONE, lineterminator = '\n', escapechar='\\')
cin = csv.reader(fin)
for row in cin:
cout.writerow(row)
答案 0 :(得分:0)
我找到了问题的答案。我没有使用反斜杠作为转义字符,而是使用' \ n'然后为每行中的每个字段查找并替换新行。即。
cout = csv.writer(fout, delimiter = '|', quotechar = '', quoting = csv.QUOTE_NONE, lineterminator = '\n', escapechar='\n')
和
for row in cin:
newrow = row
row[:] = [str.replace("\n", " ") for str in row]
cout.writerow(newrow)
列表的查找和替换基于对How to modify list entries during for loop?
的响应