以下代码:如何正确读取文件中的黑色条纹?
key = open("C:\Scripts\private.ppk",'rb').read()
读取文件和它的数据分配给了var key
。
出于某种原因,反斜杠在过程中会相乘。我怎样才能确保他们不会倍增?
以下代码:如何正确读取文件中的黑色条纹?
key = open("C:\Scripts\private.ppk",'rb').read()
读取文件和它的数据分配给了var key
。
出于某种原因,反斜杠在过程中会相乘。我怎样才能确保他们不会倍增?
你......不。他们在阅读时会被转义,以便他们在写出/使用时能够正确处理。如果你声明字符串,不想加倍的反斜杠,您可以使用原始字符串r'c:\myfile.txt'
,但并没有真正应用到您正在阅读文件的内容。
>>> s = r'c:\boot.ini'
>>> s
'c:\\boot.ini'
>>> repr(s)
"'c:\\\\boot.ini'"
>>> print s
c:\boot.ini
>>>
正如你所看到的,额外的斜杠是内部存储的,但是当你在打印语句中使用该值时(写入文件,测试值等),它们会被正确评估。
反斜杠表示为转义。你会看到文件上存在的每一个真正的反斜线,但这是正常的行为。
原因是反斜杠用于创建代表不容易表示的字符的代码,如新行'\ n'或制表符'\ t'。
你应该阅读python and the backslash escape这个伟大的博客文章角色。
而且在某些情况下,如果 Python的打印信息的 控制台,你会看到两个 反斜杠,而不是一个。例如,对于 示例,这是repr()函数 和str()函数之间差异的 的一部分。
MyFileName的= “C:\ newproject \ typenames.txt” 打印 再版(MyFileName的),STR(MyFileName的) 产生
'C:\ newproject \ typenames.txt' C:\ newproject \ typenames.txt
您是否试图将单个反斜杠放入字符串中?带反斜杠的字符串需要并转义字符,在本例中为“\”。它会用单斜杠打印到屏幕上
为什么这个答案有六个upvotes? “他们在阅读时逃脱”与发生的事情完全相反。额外的斜杠是由'repr()'添加的;它们不存储在字符串中,因此在正常打印时不需要通过“print”进行“评估”。 – kindall 2011-05-19 23:57:42