尝试将行写入csv文件。在字符串的开头和中间添加带有双引号的字符串时,当我以.txt打开它时,我会得到额外的双引号,但以.xlsx打开时没有问题。
我已经尝试了quoteting=QUOTE_NONE和quotechar='//' 和escapechar='//',但无法弄清楚什么有效。
代码如下:
import csv
csv_file = open('file.csv', 'w', newline='')
file_writer = csv.writer(csv_file)
file_writer.writerow(['Name', 'Search term'])
name = 'Patrick Fox'
search_term = '"%s" mp' % name
file_writer.writerow([name, search_term])
^ 问题出在search_term上。 .txt和.xlsx的预期输出为"帕特里克·福克斯"mp。 实际输出为">"帕特里克·福克斯"mp">.txt
我认为你不能,因为分隔符后面的双引号将被视为 XLS 格式的特殊引号,读者不会显示它,但可以在原始格式上看到(作为文本文件)。 所以我认为你有两个选择:
使用单引号而不是双引号:
import csv
csv_file = open('file.csv', 'w', newline='')
file_writer = csv.writer(csv_file)
file_writer.writerow(['Name', 'Search term'])
name = 'Patrick Fox'
search_term = '{!r} mp '.format(name)
file_writer.writerow([name, search_term])
另一种选择是在第二列中添加单个空格字符。另外,我将quoting
设置为None
.您可以在此处找到有关 CSV 格式的更多信息。
import csv
csv_file = open('file.csv', 'w', newline='')
file_writer = csv.writer(
csv_file, quoting=csv.QUOTE_NONE, quotechar='\')
file_writer.writerow(['Name', 'Search term'])
name = 'Patrick Fox'
search_term = ' "{!s}" mp '.format(name)
file_writer.writerow([name, search_term])