注意:這是一個假設性問題: 所以我搜索了這個問題的幾個變體(「String Ll」,「Escape Char」,「Raw String」等)主要只是他們說的解決方案是在字符串的第一個引號之前放置一個「r」。我也嘗試將.format()轉換爲原始字符串re/repr,然後嘗試使用.replace()斜槓,但它已經轉換了轉義字符。Python反向轉義字符 - 將一個變量轉換爲原始字符串
path = r"C:\Users\Chris\Documents\Python_2.7\2016\MyProgram"
os.path.exists(path) # Return True
os.listdir(path) # Returns list of files in directory
但是,如果它是從一個單獨的函數/類(例如)返回預定義的變量?
path = Class.Function.GetPath()
os.path.exists(path) ## Returns False
os.listdir(path) ## Will print something like:
## Windows Error... "C:\\Users\\Chris\\Documents\\Python_2.7\x816\\MyProgram"
所以我的問題是:你如何使一個預定義的變量字符串文字,並得到像這樣的路徑工作?
更新:這都是假設的!只是好奇,如果有一種方法來反轉逃脫的字符!
例子:
s = "\x77"
print s ## Prints "w"
len(s) ## Returns 1
MagicFunction(s) ## Returns "\x77" ???
* *字符串*和*字符串*之間有區別* ... –
原始字符串文字只是創建字符串的一種不同方式。與十六進制符號一樣,創建數字也是一種不同的方式。不管你寫'num = 15'還是'num = 0xf',結果都是整數15.類似地,'string = r「東西」'仍然是一個普通的字符串。 –
'r「C:\ Users \ Chris \ Documents \ Python_2.7 \ 2016 \ MyProgram」'「和'」C:\\ Users \\ Chris \\ Documents \\ Python_2.7 \\ 2016 \\ MyProgram「'* *是完全相同的字符串**。字面上完全相同。這些問題似乎基於一種誤解,因此在使用它們時它們的行爲方式沒有區別。 –