Python 自动化办公实战课
尹会生
前游戏公司技术总监,前新浪网研发中心技术经理
21781 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 37 讲
Python 自动化办公实战课
15
15
1.0x
00:00/00:00
登录|注册

16|循环与文件目录管理:如何实现文件的批量重命名?

参数的解析
参数的判断
参数的接收
使用“name”变量判断
rename()函数
命令行参数处理
明确执行位置
封装到函数
rename()函数
path.join()函数
listdir()函数
重构程序
使用os库实现文件批量重命名
思考题
使用Python实现文件的批量重命名
文件的批量重命名
循环与文件目录管理
思维导图

该思维导图由 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
立即购买
登录 后留言

全部留言(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-11
    1
  • ifelse
    学习打卡
    2023-07-13归属地:浙江
  • 李晴
    课程只有音频,没有视频吗?
    2021-12-26
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部