【发布时间】:2014-10-14 06:29:59
【问题描述】:
我看过几个类似的帖子,但没有解决我的问题。 我正在阅读带有反斜杠的数字列表并将它们写入.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 给了我一个错误。有什么想法吗?
【问题讨论】:
-
从文件中读取时,反斜杠不被解释为 Python 字符串转义。是什么让您认为从文件中读取实际上是这样做的?
-
^ 同意。如果你只是从一个文件中打印出类似于 6253\342\200\2236387 的行,你会看到 \'s 打印得很好。只需迭代文件,strip() 行和 split('\\'),你就会得到一个数字列表。
-
我收到此错误 UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 4: ordinal not in range(128) 所以它似乎将其读取为破折号而不是转义字符。
-
向我们展示您尝试运行的实际代码以及部分输入文件。