在这个世界上,人们每天都在用 Python 完成着不同的工作。而文件操作,则是大家最常需要解决的任务之一。使用 Python,你可以轻松为他人生成精美的报表,也可以用短短几行代码快速解析、整理上万份数据文件。
建议一:使用 pathlib 模块
如果你需要在 Python 里进行文件处理,那么标准库中的 os 和 os.path 兄弟俩一定是你无法避开的两个模块。在这两个模块里,有着非常多与文件路径处理、文件读写、文件状态查看相关的工具函数。
让我用一个例子来展示一下它们的使用场景。有一个目录里装了很多数据文件,但是它们的后缀名并不统一,既有 .txt,又有 .csv。我们需要把其中以 .txt 结尾的文件都修改为 .csv 后缀名。
我们可以写出这样一个函数:
import
os
import
os.path
def
unify_ext_with_os_path(path):
"""统一目录下的 .txt 文件名后缀为 .csv
"""
for
filename
in
os.listdir(path):
basename, ext = os.path.splitext(filename)
if
ext ==
'.txt'
:
abs_filepath = os.path.join(path, filename)
os.rename(abs_filepath, os.path.join(path, f
'{basename}.csv'
))
让我们看看,上面的代码一共用到了哪些与文件处理相关的函数:
上面的函数虽然可以完成需求,但说句实话,即使在写了很多年 Python 代码后,我依然觉得:这些函数不光很难记,而且最终的成品代码也不怎么讨人喜欢。
建议二:使用 pathlib 模块改写代码
为了让文件处理变得更简单,Python 在 3.4 版本引入了一个新的标准库模块:pathlib。它基于面向对象思想设计,封装了非常多与文件操作相关的功能。如果使用它来改写上面的代码,结果会大不相同。
使用 pathlib 模块后的代码:
from
pathlib
import
Path
def
unify_ext_with_pathlib(path):
for
fpath
in
Path
(path).glob(
'*.txt'
):
fpath.rename(fpath.with_suffix(
'.csv'
))
和旧代码相比,新函数只需要两行代码就完成了工作。而这两行代码主要做了这么几件事:
相比 os 和 os.path,引入 pathlib 模块后的代码明显更精简,也更有整体统一感。所有文件相关的操作都是一站式完成。
关注:(微信公众号/网站:浙江优就业)查看更多IT培训学习内容,免费体验课、免费直播课等福利不定期放送~
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
↓↓↓
留言与评论(共有 0 条评论) |