iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0

學完整個python進階語法到結構程式與權限觀念,終於進入OS套件(資料處理)的深入學習了。
沒錯,學程式觀念是要訓練對程式的熟練度與語法(畢竟現在github隨便找都有想要的)。但有些套件還是需要學習它 畢竟資料處理的套件就是用這些『觀念』做出的。


OS

主要是在處理資料,檔案的套件。透過此套件可做到結構演算法大部分用在處理檔案或資料的方法。
檔案權限與處理建議在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)
  • 絕對路徑(abs) vs 相對路徑(rel)

電腦位置辨認不像人直觀。隨網路的興起如果要在網路或軟體辨認指定資料位置 就有這兩種方法。

  • 位置:又稱物理路徑,真正在硬碟上的路徑(人的辨認)
  • 絕對路徑:資料或檔案的真正位置,只要任何上層變動路徑即無效
  • 相對路徑:表示網路或此環境下(編輯器…)指定位置,上層檔案任何變動不影響路徑

vscode根目錄位置:D:\testALL&code\rase30d
絕對路徑:\rase30d
相對路徑:/rase30d/
目標檔案 path.py
絕對路徑:\rase30d\os_py\test1\path.py
相對路徑:/rase30d//path.py

由此可得結論:除了位置外,abs跟rel的輸出都是看程式執行位置決定的
(所以執行vsCode時要注意是否在指定環境目錄裡)

  • os.path

檔案路徑的套件,包含在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

上一篇
[D26] Linux權限:了解chmod
下一篇
[D28] pythonOS:檔案控制
系列文
從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言