Python中变量的原始字符串?
我看到过几个类似的问题,但没有一个能解决我的困扰。 我正在读取一个带有反斜杠的数字列表,并把它们写入一个 .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 时出现了错误。有什么想法吗?
3 个回答
-1
我之前做了这个。这个工具可以帮助你把数据写入一个csv文件。
def write2csv(fileName,theData):
theFile = open(fileName+'.csv', 'a')
wr = csv.writer(theFile, delimiter = ',', quoting=csv.QUOTE_MINIMAL)
wr.writerow(theData)
-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里会多出一些空白记录。
0
在字符串前面加个r
只是用来定义这个字符串的。如果你是从文件里读取数据,那数据本身就是“原始”的。读取数据的时候不需要做什么特别的处理。
需要注意的是,如果你的数据不是普通的ascii格式,可能需要解码或者以二进制方式读取。例如,如果数据是utf-8格式,你可以在读取之前这样打开文件:
import codecs
f = codecs.open("test", "r", "utf-8")