iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Python

讓Python不拍勝-實用套件實作與介紹系列 第 5

[DAY5]使用Python與系統互動-os(二)

  • 分享至 

  • xImage
  •  

今天要接續上一篇的內容,繼續教各位如何利用Python的os套件與系統互動和溝通

更改檔案或資料夾名稱 os.rename('old', 'new')

若要更改檔案名稱,需加上副檔名喔

os.rename('./test', './test_rename')
os.rename('./test.txt', './test_rename.txt')
ironman_dir = os.listdir()
print(ironman_dir)

輸出結果(輸出結果會依照所指定的路徑印出內容)

#test資料夾變成test_rename,test.txt變成test_rename.txt
[test_rename.txt', 'os.ipynb', 'test_rename', 'MQTT_test.ipynb', 'MQTT_publish.py', 'MQTT_subscribe.py']

查詢檔案或資料夾的屬性 os.stat('path')

這裡示範常查詢的幾個屬性

test_txt = os.stat('./test_rename.txt')
print(test_txt.st_size) #檔案大小
print(test_txt.st_mtime) #最後修改時間
print(test_txt.st_atime) #最後訪問時間

輸出結果

0
1721897343.9751666
1721897409.331749  #自紀元以來的秒數,可以利用python其他模組轉換成更容易閱讀的方式

利用Python標準函式庫內的套件time來格式化秒數

import time
print(time.ctime(test_txt.st_mtime))
print(time.ctime(test_txt.st_atime))

輸出結果

#這樣是不是好看很多了呢!
Thu Jul 25 16:49:03 2024
Thu Jul 25 16:50:09 2024

走訪目錄下所有層級的目錄及檔案 os.walk('path')

os.walk() 會返回包含三個參數的tuple,第一個參數為目錄名稱,第二個參數為目錄裡面的子目錄名稱,第三個參數為目錄中的所有檔案名稱

tree = os.walk('/Users/ryanhsu/Desktop/python/ironman')
for folder_path, folder_sub, file in tree:
    print(f"目前目錄路徑: {folder_path}")
    print(f"{folder_path} 的子目錄為: {folder_sub}")
    print(f"目前目錄內的檔案: {file}")
    print()

輸出結果

目前目錄路徑: /Users/ryanhsu/Desktop/python/ironman
/Users/ryanhsu/Desktop/python/ironman 的子目錄為: ['test_rename']
目前目錄內的檔案: ['.DS_Store', 'test_rename.txt', 'os.ipynb', 'MQTT_test.ipynb', 'MQTT_publish.py', 'MQTT_subscribe.py']

目前目錄路徑: /Users/ryanhsu/Desktop/python/ironman/test_rename
/Users/ryanhsu/Desktop/python/ironman/test_rename 的子目錄為: []
目前目錄內的檔案: []

利用這個函式就可以很方便的知道指定目錄下的樹狀結構,方便檔案管理。

接下來介紹幾個常用的 os.path 指令

print(os.path.abspath('./')) #回傳絕對路徑
print(os.path.exists('./')) #檢查路徑是否存在
print(os.path.isabs('./')) #檢查是否為絕對路徑
print(os.path.isfile('./'))  #檢查是否為檔案
print(os.path.isdir('./')) #檢查是否為目錄

輸出結果

/Users/ryanhsu/Desktop/python/ironman
True
False
False
True

下一篇將教大家更多os套件的操作!


上一篇
[DAY4]使用Python與系統互動-os(一)
下一篇
[DAY6]使用Python與系統互動-os(三)
系列文
讓Python不拍勝-實用套件實作與介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言