[英]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.