1. 程式人生 > >回顧os和sys

回顧os和sys

不同 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(rC:\應用軟件\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