我已经看过几篇类似的帖子,但没有解决我的问题。 我正在阅读带有反斜杠的数字列表并将其写入.csv。显然反斜杠引起了问题。
addr = "6253\342\200\2236387"
with open("output.csv", 'a') as w:
write = writer(w)
write.writerow([addr])
我发现使用r“6253 \ 342 \ 200 \ 2236387”给了我正确的输出结果,但由于我正在从文件中读取输入,所以我不能使用原始字符串。我试过.encode('string-escape')但是这给了我6253 \ xe2 \ x80 \ x936387作为输出,这绝对不是我想要的。 unicode-escape给了我一个错误。有什么想法吗?
答案 0 :(得分:0)
字符串前面的r
仅用于定义字符串。如果您正在从文件中读取数据,那么它已经是“原始”。在阅读数据时,您不必做任何特别的事情。
请注意,如果您的数据不是简单的ascii,则可能需要对其进行解码或以二进制形式读取。例如,如果数据是utf-8,您可以在阅读之前打开这样的文件:
import codecs
f = codecs.open("test", "r", "utf-8")
答案 1 :(得分:-1)
文本文件包含...
1234\4567\7890
41\5432\345\6789
代码:
with open('c:/tmp/numbers.csv', 'ab') as w:
f = open(textfilepath)
wr = csv.writer(w)
for line in f:
line = line.strip()
wr.writerow([line])
f.close()
这产生了一个带有整行的csv。也许使用'ab'而不是'a'作为您的文件打开类型。当我只使用'a'时,我在csv中获得了额外的空白记录。
答案 2 :(得分:-1)
我创造了一段时间。这有助于您写入csv文件。
def write2csv(fileName,theData):
theFile = open(fileName+'.csv', 'a')
wr = csv.writer(theFile, delimiter = ',', quoting=csv.QUOTE_MINIMAL)
wr.writerow(theData)