簡體   English   中英

在python中將反斜杠轉換為正斜杠

[英]Convert backward slash to forward slash in python

嗨,我已閱讀有關將向后轉換為正斜杠的文章。 但sol是使用原始字符串。

但問題在於我的情況是:

我將動態獲取文件路徑變量var ='C:\\ dummy_folder \\ a.txt'在這種情況下,我需要將其轉換為正斜杠。 但由於'\\ a',我無法轉換為正斜杠

如何轉換它? 或者我應該如何將此字符串更改為原始字符串,以便我可以將其更改為正斜杠

不要這樣做。 只需使用os.path並讓它處理所有事情。 您不應該顯式設置向前或向后斜杠。

>>> var=r'C:\dummy_folder\a.txt'
>>> var.replace('\\', '/')
'C:/dummy_folder/a.txt'

但是,不要。 只需使用os.path並開心!

還有os.path.normpath (),它根據本地操作系統轉換反斜杠和斜杠。 有關詳細用法信息,請參閱此處 你會這樣使用它:

>>> string = r'C:/dummy_folder/a.txt'
>>> os.path.normpath(string)
'C:\dummy_folder\a.txt'

處理路徑只是一個字符串可能會讓你陷入麻煩。 如果您正在處理的路徑是用戶輸入,或者可能以不可預測的方式變化,則更多。

不同的OS有不同的方式來表達給定文件的路徑,並且每種現代編程語言都有自己的方法來處理路徑和文件系統引用。 當然Python和Ruby有它:

如果你真的需要處理字符串:

  • Python:string.replace
  • Ruby:string.gsub

原始字符串用於字符串文字(直接寫在源文件中),這似乎不是這里的情況。 在任何情況下,正斜杠都不是特殊字符 - 它們可以嵌入到常規字符串中而不會出現問題。 它是反斜杠,通常在字符串中具有其他含義,需要“轉義”,以便將它們解釋為文字反斜杠。

用正斜杠替換反斜杠:

# Python:
string = r'C:\dummy_folder\a.txt'
string = string.replace('\\', '/')

# Ruby:
string = 'C:\\dummy_folder\\a.txt'
string = string.gsub('\\', '/')
>>> 'C:\\dummy_folder\\a.txt'.replace('\\', '/')
'C:/dummy_folder/a.txt'

在字符串文字中,您需要轉義\\字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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