python获取⽂件名不带后缀_使⽤Python⾼效操作⽂件,⼏条
python怎么读取py文件超实⽤的建议分享给你...
在这个世界上,⼈们每天都在⽤ Python 完成着不同的⼯作。⽽⽂件操作,则是⼤家最常需要解决的任务之⼀。使⽤ Python,你可以轻松
为他⼈⽣成精美的报表,也可以⽤短短⼏⾏代码快速解析、整理上万份数据⽂件。
建议⼀:使⽤ pathlib 模块
如果你需要在 Python ⾥进⾏⽂件处理,那么标准库中的 os 和 os.path 兄弟俩⼀定是你⽆法避开的两个模块。在这两个模块⾥,有着⾮常
多与⽂件路径处理、⽂件读写、⽂件状态查看相关的⼯具函数。
让我⽤⼀个例⼦来展⽰⼀下它们的使⽤场景。有⼀个⽬录⾥装了很多数据⽂件,但是它们的后缀名并不统⼀,既有 .txt,⼜有 .csv。我们需
要把其中以 .txt 结尾的⽂件都修改为 .csv 后缀名。
我们可以写出这样⼀个函数:
import osimport os.pathdef unify_ext_with_os_path(path): """统⼀⽬录下的 .txt ⽂件名后缀为 .csv """ for filename in os.listdir(path): basename, ext = os.path.splite 让我们看看,上⾯的代码⼀共⽤到了哪些与⽂件处理相关的函数:
os.listdir(path):列出 path ⽬录下的所有⽂件(含⽂件夹)
os.path.splitext(filename):切分⽂件名⾥⾯的基础名称和后缀部分
os.path.join(path,filename):组合需要操作的⽂件名为绝对路径
上⾯的函数虽然可以完成需求,但说句实话,即使在写了很多年 Python 代码后,我依然觉得:这些函数不光很难记,⽽且最终的成品代码
也不怎么讨⼈喜欢。
建议⼆:使⽤ pathlib 模块改写代码
为了让⽂件处理变得更简单,Python 在 3.4 版本引⼊了⼀个新的标准库模块:pathlib。它基于⾯向对象思想设计,封装了⾮常多与⽂件
操作相关的功能。如果使⽤它来改写上⾯的代码,结果会⼤不相同。
使⽤ pathlib 模块后的代码:
from pathlib import Pathdef unify_ext_with_pathlib(path): for fpath in Path(path).glob('*.txt'): ame(fpath.with_suffix('.csv'))
和旧代码相⽐,新函数只需要两⾏代码就完成了⼯作。⽽这两⾏代码主要做了这么⼏件事:
1. ⾸先使⽤ Path(path) 将字符串路径转换为 Path 对象
2. 调⽤ .glob('*.txt') 对路径下所有内容进⾏模式匹配并以⽣成器⽅式返回,结果仍然是 Path 对象,所以我们可以接着做后⾯的操作
3. 使⽤ .with_suffix('.csv') 直接获取使⽤新后缀名的⽂件全路径
4. 调⽤ .rename(target) 完成重命名
相⽐ os 和 os.path,引⼊ pathlib 模块后的代码明显更精简,也更有整体统⼀感。所有⽂件相关的操作都是⼀站式完成。
关注:(/⽹站:浙江优就业)查看更多IT培训学习内容,免费体验课、免费直播课等福利不定期放送~
免责声明:内容和图⽚源⾃⽹络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。↓↓↓
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论