16|循环与文件目录管理:如何实现文件的批量重命名?
尹会生
该思维导图由 AI 生成,仅供参考
你好,我是尹会生。
作为产品经理 / 运营,你经常需要做竞品调研,来跟自家产品对比优劣。这时,你就需要下载大量与该类产品相关的图片,并进行整理归类。而归类操作中,必须要走的一步就是对这些图片进行重命名。
还有你在搜集资料时,往往会从网络中下载大量不同格式的文件,比如电子书、视频、音频等,为了方便归纳整理,你也需要对文件进行重命名。
通过我例举的这两个场景,你应该发现了,这些需求都是把批量改名和网络功能结合,而且还需要 Mac 和 Windows 系统支持重命名。那怎么来实现批量重命名的操作呢?
如果你还记得上节课的内容,肯定会说,使用 PowerShell 就可以了。不过你要是对 PowerShell 相关知识掌握得扎实的话,也会记得我说过,PowerShell 适合在 Windows 平台下独立运行的临时性任务。所以在非 Windows 系统,以及需要和网络下载功能结合的需求上,它就没有 Python 的兼容性好。
那么今天这节课,我会带你回到 Python,使用 Python 来实现文件的批量重命名。
如何使用 os 库实现文件批量重命名
还是老规矩,我们学习一个新的功能,首先要学习它所需要的 Python 库和函数。
例如,我把友商的产品介绍图片,通过网络批量下载后,存放在“/Users/user1/Desktop/pic”文件夹中,这些文件名称长短不一,那我希望能从数字 1 开始,为它们批量重命名。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
文章介绍了如何使用Python中的os库实现文件的批量重命名。作者首先通过举例说明了产品经理/运营在整理归类图片和文件时需要进行批量重命名的需求,并指出了PowerShell在非Windows系统和网络下载功能结合上的局限性。随后,作者详细介绍了如何使用os库中的listdir()、path.join()和rename()函数来实现文件的批量重命名,并提出了重构代码以提高可读性和可维护性的建议。作者通过封装到函数的方式重构了代码,使得代码结构更加清晰,提高了代码的可读性和可维护性。文章内容涵盖了技术实现细节和编程规范,适合读者快速了解Python中文件批量重命名的实现方法,并学习如何通过重构代码提高代码质量和可维护性。在文章的后半部分,作者还介绍了如何通过对内置变量“__name__”的值进行判断,实现程序入口的指定,以及如何使用argparse库处理命令行参数,从而实现对批量改名的目录和扩展名的设置。通过这些改进,文章展示了如何提高代码的可读性和执行便利性,为读者提供了更清晰的代码结构和更方便的参数设置方式。整体而言,本文内容丰富,技术性强,适合对Python文件操作感兴趣的读者学习参考。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 自动化办公实战课》,新⼈⾸单¥59
《Python 自动化办公实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- 武明听了老师的讲解才明白那个name变量到底是什么回事儿,虽然之前会用,但是却不知道怎么回事儿,谢谢老师
作者回复: 加油
2021-03-30 - Soul of the Dragon老师,我在调用命令行参数时,出现了“An exception has occurred, use %tb to see the full traceback. SystemExit: 2” 这样的显示,请问是什么原因?
作者回复: 这种情况应该只会在python交互模式里出现,原因是argparse对交互模式或jupyer支持不够完善导致的,改成用脚本方式运行就可以了。
2021-03-19 - 回到原点import os import argparse def add(arg1, arg2): return arg1+arg2 def substract(arg1, arg2): return arg1-arg2 def args_opt(): parser = argparse.ArgumentParser( description="Return sum and difference of two numbers if both are integers") parser.add_argument("arg1") parser.add_argument("arg2") return parser.parse_args() if __name__ == "__main__": args = args_opt() try: val1, val2 = int(args.arg1), int(args.arg2) print(add(val1, val2), substract(val1, val2)) except ValueError: print(f"At least one of {args.arg1,args.arg2} is not integer")2021-04-111
- ifelse学习打卡2023-07-13归属地:浙江
- 李晴课程只有音频,没有视频吗?2021-12-26
收起评论