今天要接續上一篇的內容,繼續教各位如何利用Python的os套件與系統互動和溝通
若要更改檔案名稱,需加上副檔名喔
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']
這裡示範常查詢的幾個屬性
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() 會返回包含三個參數的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套件的操作!