python文件操作实验总结,[干货分享]Python文件操作技巧总结
引言
小伙伴們,今天給大家講解一下python程序下的文件操作完整技巧梳理,都是筆者總結的干貨。通過本文閱讀,不僅可以帶來生產力提升,也可以開發小腳本為生活帶來樂趣。
????????首先不知道大家對python有沒有了解,不太會用的小伙伴可以在下面回復,我將出一期新的python教程進行前置學習,也會針對大家的情況提供初學資料。那么現在呢,假定你已經入門了Python,但是對文件操作還不熟練,技巧也不清楚,那么就來一起進行本文之旅吧。
python文件操作總體來說,還是比較簡單的,但是各個模塊之間比較混亂,官方自帶的庫提供的功能各有不一,帶來很多不便之處。本文通過筆者數年python經驗總結,幫你們做一次完整的梳理,提供各種操作的技巧示范。
各官方庫的簡介
我們利用python文件操作,一般是利用官方提供給我們的庫,如os,pathlib,shutil等,一般很少使用第三方的庫,因為這些已經足夠簡單。那么首先讓大家看看官方文檔的描述吧。官方庫文檔介紹os依賴操作系統的功能的快捷函數。
pathlib用適用于不同操作系統的語法,來表示文件系統路徑
shutil在文件和文件集合上提供了許多高級操作
接下來開始正式的技巧環節。
技巧一:文件信息查看
查看文件信息,使用os或者pathlib的stat函數即可。熟悉linux的小伙伴,會發現linux命令行也是用的stat。import os
print(os.stat('test1.txt'))
#輸出:os.stat_result(st_mode=33206, st_ino=1688849860300737, st_dev=518802029, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1614757783, st_mtime=1614757783, st_ctime=1614757783)
from pathlib import Path
print(Path('test1.txt').stat())
#輸出:os.stat_result(st_mode=33206, st_ino=1688849860300737, st_dev=518802029, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1614757783, st_mtime=1614757783, st_ctime=1614757783)
可以看到,輸出一個類,常用的成員解釋如下。官方庫文檔介紹st_size用適用于不同操作系統的語法,來表示文件系統路徑
st_atime最后訪問時間
st_mtime最后修改時間
st_ctimelinux為“最后修改時間”, windows為“創建時間”
這里面的時間是距離1970年1月1日(UTC)以來有多少秒,我們可以這樣轉為年月日。至于詳細的時間操作技巧,可以見后續的文章,別忘關注哦。from datetime import datetime
print(datetime.fromtimestamp(1614757783))
# 輸出:2021-03-03 15:49:43
技巧二:文件/文件夾的創建
·文件的創建可以簡單的用 with open即可,這里不再贅述。·文件夾的創建,涉及到是否覆蓋或跳過已存在的文件夾的問題。所以建議使用?pathlib?庫里面的?mkdir?函數。Path.mkdir() 函數有個參數?exist_ok,為True?時允許已存在,運行則跳過。為False時不允許存在,運行則報錯。print(Path('test').mkdir()) # exist_ok 默認False
print(Path('test').mkdir(exist_ok=True)) # 存在則跳過
print(Path('test').mkdir(exist_ok=False)) # 存在則報錯
技巧三:文件/文件夾的刪除
文件或文件夾的刪除,都可以用?shutil庫的rmtree方法。其中有個?ignore_errors參數,可以指定是否忽略錯誤。注意謹慎刪除哦。shutil.rmtree('test1.txt') # exist_ok默認False
shutil.rmtree('test1.txt', ignore_errors=True) # 忽略錯誤
shutil.rmtree('test1.txt', ignore_errors=False) # 不忽略錯誤
技巧三:文件/文件夾修改
文件內容修改,簡單使用 with open 即可,不再贅述。
文件或文件夾的名稱修改,可以用shutil的move函數。import shutil
shutil.move('test1.txt', 'test2.txt')
技巧三:文件/文件夾復制、剪切
文件夾復制、剪切,可以分別用shutil的copy函數和move函數。import shutil
shutil.copy('test1.txt', 'test2.txt')
shutil.move('test1.txt', 'test3.txt')
技巧三:文件夾遍歷
文件夾遍歷,可以用pathlib的Path.glob函數。該函數輸出一個Generator生成器,可以直接for循環,也可以用list()轉為列表。
遞歸遍歷可以在搜索項之前加上**/?前綴。from pathlib import Path
print(list(Path('.').glob('*.txt')))
print(list(Path('.').glob('**/*.txt')) # 遞歸遍歷子文件夾
技巧五:文件/文件夾查找
參見技巧四,先文件夾遍歷,再判斷即可。
好了,相關的文件技巧已經介紹完了,筆者平時做python開發,差不多已經夠用了。當然也偶爾開發小腳本,批量管理文件,增加生活樂趣,有興趣的可以留言,后續跟進。
不喜歡
總結
以上是生活随笔為你收集整理的python文件操作实验总结,[干货分享]Python文件操作技巧总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MCMC算法大统一: Involutiv
- 下一篇: 伍迷随想冷饭集 之 瞻前顾后之随想