學完整個python進階語法到結構程式與權限觀念,終於進入OS套件(資料處理)的深入學習了。
沒錯,學程式觀念是要訓練對程式的熟練度與語法(畢竟現在github隨便找都有想要的)。但有些套件還是需要學習它 畢竟資料處理的套件就是用這些『觀念』做出的。
主要是在處理資料,檔案的套件。透過此套件可做到結構演算法大部分用在處理檔案或資料的方法。檔案權限與處理建議在vsCode比較適合
import os
fdir = os.makedirs('./dir1/')
但如果檔案已存在,會報錯。在後方加個允許存在
import os
fdir = os.makedirs('./dir1/', exist_ok=True)
可以取代bat檔建立批量資料夾。又因為在winOS,避免亂碼可用unicode
import os
a = int(input(u'要幾個呢?')) #unicode
for i in range(0 , a):
i+=1
os.makedirs('./dir%d/' %i , exist_ok=True)
電腦位置辨認不像人直觀。隨網路的興起如果要在網路或軟體辨認指定資料位置 就有這兩種方法。
- 位置:又稱物理路徑,真正在硬碟上的路徑(人的辨認)
- 絕對路徑:資料或檔案的真正位置,只要任何上層變動路徑即無效
- 相對路徑:表示網路或此環境下(編輯器…)指定位置,上層檔案任何變動不影響路徑
vscode根目錄位置:D:\testALL&code\rase30d
絕對路徑:\rase30d
相對路徑:/rase30d/目標檔案 path.py
絕對路徑:\rase30d\os_py\test1\path.py
相對路徑:/rase30d//path.py
由此可得結論:除了位置外,abs跟rel的輸出都是看程式執行位置決定的
(所以執行vsCode時要注意是否在指定環境目錄裡)
檔案路徑的套件,包含在os裡不須而外引入。<需注意路徑名稱都為str>
Ex:(執行環境在test1目錄的os.path)
import os
p = 'ospath.py'
dl = "www"
nl = "www.runoob.com/python/python-os-path.html"
ap = os.path.abspath(p) # p的abs
a1 = os.path.abspath('.') #執行的abs路徑
a2 = os.path.abspath('..') #類似終端機的cd ../(退出此目錄)
b = os.path.dirname(__file__) #此目錄位置
c = os.path.getsize(ap) # p的大小(單位Byte)
#is語法辨認
d1 = os.path.isabs(ap) #是abs?
d2 = os.path.isdir(dl) #是目錄?
d3 = os.path.isfile(ap) #是檔案?
d4 = os.path.islink(nl) #是連結(net)?
print(ap,a1,a2,b,c,d1,d2,d3,d4, sep='\n') #輸出一個就換行
Out[ ]:
D:\testALL&code\rase30d\os_py\test1\ospath.py
D:\testALL&code\rase30d\os_py\test1
D:\testALL&code\rase30d\os_py
d:\testALL&code\rase30d\os_py\test1
142
True
True
True
True