回顧os和sys
阿新 • • 發佈:2019-02-17
不同 SYS模塊 name 出現 字符 os模塊 如果 __file__ python
import sys sys.argv[0] = __file__
sys.argv是顯示程序本身路徑,路徑用列表儲存
[‘C:/應用軟件/python類/python程序/day25/day25.py‘]
而經常用到的__file__顯示的也是當前路徑,是字符串
C:/應用軟件/python類/python程序/day25/day25.py <class ‘str‘>
所以要想兩者相等,摘出來:sys.argv[0] = __file__
用print(sys.argv[0] == __file__)判斷一下,結果為真
True
對於os.path.abspath(path)則是規範化絕對路徑
如__file__為
C:/應用軟件/python類/python程序/day25/day25.py
而os.path.abspath(__file__)為
C:\應用軟件\python類\python程序\day25\day25.py
是斜線(‘/‘和‘\‘)的不同,在寫路徑是,我們通常用上端向左的 反斜杠 ‘\‘,但是這種反斜杠寫路徑的時候,容易和python的\t,\n 重名,我們就在路徑前加轉譯字符r,或者用 ‘\\‘ 取代 ‘\‘(上文__file__寫法)
print(r‘C:\應用軟件\python類\python程序\day25\day25.py‘) print(‘C:\\應用軟件\\python類\\python程序\\day25\\day25.py‘) #結果顯示 C:\應用軟件\python類\python程序\day25\day25.py C:\應用軟件\python類\python程序\day25\day25.py
如果使用正斜杠(上文os.path.abspath寫法),就不會這麽麻煩,不會出現上述情況
print(‘C:/應用軟件/python類/python程序/day25/day25.py‘) #結果 C:/應用軟件/python類/python程序/day25/day25.py
此外,正斜杠可以用作除法,就是我們的除號
print(10/3) #結果 3.3333333333333335
以下是‘\t‘空四格和‘\n‘換行的例子
print(‘啊‘) print(‘\t啊‘) print(‘\n啊‘) #結果 啊 啊 啊
os.path.split(__file__)可以把__file__的最後一個路徑和之前的路徑拆開,拆成一個元組
print(__file__) print(os.path.split(__file__)) #結果 C:/應用軟件/python類/python程序/day25/day25.py (‘C:/應用軟件/python類/python程序/day25‘, ‘day25.py‘)
os.path.dirname和os.path.basename分別取元組的前後2個部分
print(os.path.dirname(__file__)) print(os.path.basename(__file__)) #結果 C:/應用軟件/python類/python程序/day25 day25.py
在開發規範中的,start作為啟動文件,需要調用core中的scr主邏輯程序,這是就需要用到os模塊了sys模塊了
import sys,os BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) from core import src if __name__ == ‘__main__‘: src.run
其中__name__在啟動的文件中才會顯示__main__
在被調用時,會顯示被調用的文件名稱
回顧os和sys