如何正确从文件读取反斜杠?

5 投票
5 回答
8398 浏览
提问于 2025-04-16 18:00

下面的代码:

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
>>>

正如你所看到的,额外的反斜杠在内部是存储的,但当你在打印语句中使用这个值(比如写入文件、测试值等)时,它们会被正确处理。

撰写回答