如何正确从文件读取反斜杠?
下面的代码:
key = open("C:\Scripts\private.ppk",'rb').read()
会读取一个文件,并把里面的数据存到一个叫 key
的变量里。
但是在这个过程中,反斜杠(\)的数量会变多。请问我该怎么做才能确保它们不会被重复增加呢?
5 个回答
0
你想在字符串里放一个反斜杠吗?包含反斜杠的字符串需要用一个转义字符来处理,这里就是“\”。这样的话,屏幕上就会显示一个反斜杠。
4
你应该看看这篇很棒的博客文章,讲的是Python和反斜杠转义字符。
在某些情况下,当Python把信息打印到控制台时,你会看到两个反斜杠,而不是一个。比如,这就是repr()函数和str()函数之间的区别。
假设有个变量myFilename,内容是:
myFilename = "c:\newproject\typenames.txt"
当你执行:
print repr(myFilename), str(myFilename)
会得到:
'c:\newproject\typenames.txt' 和 c:\newproject\typenames.txt
8
你...不需要这样做。当你读取这些内容时,它们会被处理成可以正常使用的样子。如果你在声明字符串时不想写两次反斜杠,可以使用原始字符串,比如 r'c:\myfile.txt'
,但这并不适用于你正在读取的文件内容。
>>> s = r'c:\boot.ini'
>>> s
'c:\\boot.ini'
>>> repr(s)
"'c:\\\\boot.ini'"
>>> print s
c:\boot.ini
>>>
正如你所看到的,额外的反斜杠在内部是存储的,但当你在打印语句中使用这个值(比如写入文件、测试值等)时,它们会被正确处理。