[英]Python doubling backslashes when using; with open(C:\directory_name) as file_object (PyCharm IDE)
当我使用(PyCharm IDE)时:
with open("C:\file_path\target_file") as path_object:
它总是使驱动器反斜杠加倍。
我尝试使用原始字符串输入路径,结果相同;
file_path = r"C:\file_path\target_file"
我尝试过pathlib / Path,结果相同;
from pathlib import Path
file_path = Path("C:\file_path\target_file")
第二个反斜杠如预期的那样出现,但是无论如何,驱动器反斜杠总是加倍。 打印文件路径时,控制台会正确显示路径。
我也尝试转义反斜杠(\\),但它不起作用。 搜索路径时,它会打印为两倍。
您需要区分字符串的内容和REPL显示的内容。 例如:
>>> '''I am a multiline
... string
... '''
'I am a multiline\nstring\n'
>>> print('I am a multiline\nstring\n')
I am a multiline
string
>>>
即使其中一个包含文字换行符,而另一个包含换行文字( \\n
),两者也表示完全相同的字符串。 这是因为REPL在打印出来之前会调用repr(your_string)
以便该字符串适合一行。
在您的情况下, \\f
和\\t
实际上是错误:
>>> print("C:\file_path\target_file")
C:
ile_path arget_file
这是因为\\t
代表制表符, \\f
代表换页,就像\\n
代表换行符一样。 实际上,双反斜杠是正确的,因为您希望\\
字面意思是反斜杠,而不是转义序列的开始:
>>> print("C:\\file_path\\target_file")
C:\file_path\target_file
使用原始字符串具有相同的效果:
>>> print(r"C:\file_path\target_file")
C:\file_path\target_file
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.