簡體   English   中英

使用時,Python將反斜杠加倍; 使用open(C:\\ directory_name)作為file_object(PyCharm IDE)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM