Python字串中的檔案路徑

2021-07-29 18:14:45 字數 1187 閱讀 7896

在windows上使用python時,經常會被檔案路徑報出的錯誤搞蒙

第一種錯誤

比如open('c:\users\administrator\desktop\test.doc').read()就會報

syntaxerror: (unicode

error) 'unicodeescape' codec can't decode bytes in position 4-5: truncated \u******xx escape

由於』\u』是python中32位的十六進製制數值的開始,例如』\u012f3005』(32位即8個十六進製制數字),而路徑中』u』後面是』s』,顯然是錯誤的,就報了語法錯誤:「unicode轉義編解碼器無法解碼位置4-5的位元組:截短了的 \u******xx 轉義」,這裡就提示了』x』應該有8個。

第二種錯誤

現在我改寫成』\u』,其他不變,並沒有順利的執行,接著出現這個錯誤:

oserror: [errno 22] invalid argument: 'c:\\users\\administrator\\desktop\test.doc'
首先可以看到,系統很貼心的自動把不是轉義字元的』\a』和』\d』多加了個』\』;其次我注意到,』\t』沒有改寫,python把它識別成了』\t』水平製表符,系統沒辦法識別這個奇怪的路徑,只好報錯

解決辦法

常見出現這些錯誤的原因就是轉義字元』\』的存在,python遇到轉義字元會自動轉義。解決方法有這麼幾種:

簡單粗暴法:所有的』\』換成』/』,馬上搞定

對仗工整法:所有的』\』換成』\\』,這麼做python會將所有的』\』識別為普通字元,不管後面跟什麼都不會看做轉義

清晰明了法:將路徑字串寫成r』 『,如r』c:\users\administrator\desktop\test.doc』,告訴python,引號裡的東西都是字串,不轉義

對症下藥法:遇到會被python識別成轉義字元的,就把』\』換成』\\』;具體有哪些轉義字元,可移步python轉義字元,比如上面的例子,寫成open('c:\\users\administrator\desktop\\test.doc').read()就ok了,只有第乙個和最後乙個需要多寫乙個』\』

python中的字串

方法1 用字串的join方法 a a b c d content content join a print content 方法2 用字串的替換佔位符替換 a a b c d content content s s s s tuple a print content 我們可以通過索引來提取想要獲取的...

python中的字串

b nihao hahah xixi 輸出 nihao nhahah nxixi n 原字串 big r this hhaha big輸出 this nhhaha 還原為unicode字串 hello u hello u0020world hello輸出 hello world 字串是不可以改變的 ...

python中的字串

字串連線操作 字串複製操作 字串索引操作,通過索引訪問指定位置的字元,索引從0開始 字串取片操作 完整格式 開始索引 結束索引 間隔值 結束索引 從開頭擷取到結束索引之前 開始索引 從開始索引擷取到字串的最後 開始索引 結束索引 從開始索引擷取到結束索引之前 擷取所有字串 開始索引 結束索引 間隔值...