python路徑問題
A. python路徑錯誤問題,怎麼解決
代碼是這個:
print('C:usersdesktop')
1
出現這個報錯:
SyntaxError:(unicodeerror)'unicodeescape'codeccan'tdecodebytesinposition2-3:truncatedUXXXXXXXXescape
1
「」在python中表示轉義,而」」打算將u轉義為有意義的符號,而」」並未能如願,因為沒有對應的轉義字元。這時只能報上述的錯誤SyntaxError:(unicodeerror)『unicodeescape』。應該改為「/」
即應改為:
print('C:/users/desktop')
1
也可以改為:
print(r'C:usersdesktop')
1
在字元串前加個r是為了告訴編譯器這個string是個rawstring,不要轉義~
B. 用where python查看python路徑 出現where不是內部或外部命令怎麼辦
CMD環境路徑問題,CMD輸入path C:WindowsSystem32試試。
Python由荷蘭數學和計算機科學研究學會的Guido van Rossum於1990 年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。
Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。[4]Python 也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。
2021年10月,語言流行指數的編譯器Tiobe將Python加冕為最受歡迎的編程語言,20年來首次將其置於Java、C和JavaScript之上。
C. python 運行文件路徑問題
Desktop/LCI是相對路徑,前面會自動加上當前路徑
/Desktop/LCI才是絕對路徑,路徑與文件名要用/分隔,不要空格
python /Desktop/LCI/click.py
D. python 獲取文件夾路徑問題
#encoding:utf-8
importos
printos.path.abspath("test")
使用os.path.abspath方法可以輸出文件夾的絕對路徑。
參數裡面要寫相對路徑,比如腳本和文件夾在同一路徑,就直接寫名字即可。如果文件夾在上一個目錄,就寫成"../test"。
其實從方法名也能看出來,是一個相對路徑轉絕對路徑的方法。
E. python文件執行路徑問題
如果程序需要使用一些配置文件時,一般也是用相對路徑的,這樣也容易出問題,這時需要在啟動程序時切換到程序所在的路徑。
sys.path[0] 是程序所在的目錄,在程序開頭處加上 os.chdir(sys.path[0]) 就可以了。
如果是使用 py2exe 打包的程序,sys.path[0] 值是 路徑名\library.zip , 再處理一下這個就可以:
ddir = sys.path[0]
if os.path.isfile(ddir):
ddir,filen = os.path.split(ddir)
os.chdir(ddir)
F. python文件路徑問題
這說明是pythonwin的問題,用wingide吧。如果一定要用pythonwin,就把代碼改成: molepath = os.path.dirname(os.path.realpath(__file__)) + 'mole' sys.path.append(molepath)
G. python import 路徑問題 新手
以下為純手打,下面給幾個demos:
說明:
moles所在的目錄在python里叫package, 下面是一個名為 IsDir的package(實際上就是一個目錄), package下面有4個moles(A, B, C, D)和一個__init__.py文件,目錄結構如下:
IsDir/
A.pyB.pyC.pyD.py__init__.py
大體來講,有兩種方法可以調用某目錄下(包括遞歸目錄)的moles.
一. __init__.py為空時
1.1以下為調用moleA的代碼:
#!/usr/bin/envpython
fromIsDirimportA
A.say()
輸出:
ThisismoleA!
1.2 如果想調用moleA,B,C,D呢?
方法1.
#!/usr/bin/envpython
fromIsDirimportA
fromIsDirimportB
fromIsDirimportC
fromIsDirimportD
A.say()
B.say()
C.say()
D.say()
方法2.
#!/usr/bin/envpython
importIsDir.A
importIsDir.B
importIsDir.C
importIsDir.D
fromIsDirimport*
A.say()
B.say()
C.say()
D.say()
錯誤示例1:
#!/usr/bin/envpython
importIsDir.A
A.say()
錯誤示例2:
#!/usr/bin/envpython
fromIsDirimport*
A.say()
錯誤的原因:
IsDir/目錄下__init__.py為空時,直接importIsDir.A或者fromIsDirimport*是無效的.
從官方文檔里可以看到,__init__.py 里沒有__all__=[mole1,mole2,...]時,
fromIsDirimport* 只能保證IsDir被imported, 所以此時IsDir里的moles是無法被imported,
此時只有如我上面所寫的代碼所示才能正確執行,否則是錯誤的。官方解釋為:importIsDir.A並無任何意義,只有接著執行fromIsDirimport*後,importIsDir.A語句里的moleA才會被定義,所以完整的調用因改為: 1. import IsDir.A 2. from IsDir import *。
二. __init__.py用all=[...]指定該package下可以被imported進去的mole
__init__.py里寫入如下內容:
%catIsDir/__init__.py
__all__=["A","B"]
然後使用之:
#!/usr/bin/envpython
fromIsDirimport*
A.say()
B.say()
結果:
%pythontest.py
ThisismoleA!
ThisismoleB!
錯誤實例:
#!/usr/bin/envpython
fromIsDirimport*
C.say()
以上示例之所以錯誤,是因為C並沒有在__all__=["A","B"]里制定,由此可見,packageIsDir下面的__init__.py里,__all__=[...]具有隔離moles的作用。
補充:
mole A, B, C,D里我分別只定義了一個method, 例如,以下為mole A的code:
%catIsDir/A.py
defsay():
print"ThisismoleA!"
後記:
謝謝這位同學,回答你的問題感覺很有收獲,順便又把python溫習了一遍。回頭把這些總結貼到我的blog上以上為手寫,望採納,共勉。
=============================================================
老子寫了這么多居然採用了另一個簡陋的答案,mlgb的,枉我熬夜給你答題。這種白痴樓主就不配在這里問問題。
H. Python實現路徑錯誤問題,怎麼解決
代碼是這個: print('C:\users\desktop')1出現這個報錯: SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape1「\」在python中表示轉義,而」\」打算將u轉義為有意義的符號,而」\」並未能如願,因為沒有對應的轉義字元。這時只能報上述的錯誤SyntaxError: (unicode error) 『unicodeescape』 。應該改為「/」 即應改為: print('C:/users/desktop')1也可以改為: print(r'C:\users\desktop')1在字元串前加個 r 是為了告訴編譯器這個string是個raw string,不要轉義 ~