ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Python零基础入门:1小时编写批量重命名小工具

Python零基础入门:1小时编写批量重命名小工具 从零到第一个能用的 Python 小工具很多人被“编程很难”的刻板印象劝退了。实际上Python 最友好的地方在于你不必先啃完一本语法书只要掌握最核心的几个概念就能写出解决日常重复劳动的小程序。这篇文章就按“1 小时”来规划前 20 分钟装好环境中间 20 分钟吃透必备语法最后 20 分钟写一个真实可用的程序——批量重命名文件夹里的文件。学完你就能感受到编程其实就是把“手动画文件”这种事交给代码去做。我会把安装环节里容易踩的版本选择、环境变量、编辑器配置都讲透语法部分也只挑实用程序真正用得到的讲不讲那些以后才会碰到的冷门概念。整个过程跟着敲就行不用死记硬背代码里每行的作用我都会解释清楚。1. 1小时学习路线先做减法再动手1.1 一小时到底能学到什么程度先说结论一小时后你能独立看懂一段 50 行左右的 Python 脚本能自己写一个带判断、循环、函数的小工具并且知道遇到报错时怎么去搜、去改。这个水平已经覆盖了日常办公自动化的三分之一场景。很多人学编程失败不是因为笨而是因为一开始就陷入“这也要学、那也要学”的焦虑。实际上入门阶段只需要四件事装环境、会赋值、会判断和循环、会定义函数。像装饰器、异常处理、类与对象这些东西第一个小时完全可以不碰等真有需要时再查再学效率远高于盲目通读教程。1.2 我的时间分配方案我给不少朋友带过入门发现一个比较稳的节奏是 20-20-20 再加 10 分钟弹性前 20 分钟下载 Python、安装、验证成功再选一个写代码的工具编辑器。中间 20 分钟照着示例敲一遍变量、if 判断、for 循环、函数定义不需要背只需要“手熟”。后 20 分钟跟写那个批量重命名文件的实用程序一边写一边理解每行代码的目的。剩余 10 分钟用来处理自己电脑上出现的意外问题这些我后面专门列了排查思路。我见过太多人把前 20 分钟拖成一个小时反复纠结“装哪个版本好”“用 PyCharm 还是 VSCode”“要不要先配虚拟环境”结果环境没装完热情先耗尽。版本和编辑器只要选最常见的就行别在这个环节过度思考。先跑起来比什么都强。1.3 别急着买书、报课先跑通最小流程新手最容易犯的战略错误是收藏一堆教程、买一堆书然后半个月了一个程序都没写出来。编程是肌肉记忆加工程思维光看不练没有任何意义。我的建议是用这 1 小时把“下载—安装—运行—写代码—看到结果”这个最小闭环走通只要这个闭环通了后面的学习就有了支点。这个“支点”非常重要。当你亲手把一个写在文本文件里的代码变成了电脑上实实在在的反馈——比如看到一堆文件名被自动修改了——你对“编程能做什么”的理解会一下子立体起来。之后无论你是去看书、上网课、还是查文档都会有方向感。2. 20分钟搞定 Python 环境安装与编辑器选型2.1 Python 版本选择别追新选稳定打开 Python 官网python.org的 Downloads 页面会看到最新的版本号比如 3.12.x 或 3.13.x。对零基础来说我的建议是选择当前最新的稳定版因为新版通常包含性能优化和更好的错误提示而且第三方库的兼容性在新版本发布一年后一般已经非常完善了。要注意的是区分 32 位和 64 位。现在绝大多数电脑都是 64 位 Windows一般直接下 Windows installer (64-bit) 就行。但有一个容易忽略的点如果你公司内网有老旧的第三方库要求或者你用的某个专用软件只支持 32 位 Python那才需要特意选 32 位版本。个人学习用途64 位是默认答案。在安装界面上最关键的设置是把“Add python.exe to PATH”这个复选框勾上。这个选项的作用是把 Python 命令注册到系统环境变量里这样在命令行窗口里敲 python 就能直接进入 Python 环境。有些人装完后打开命令行输入 python 提示“不是内部或外部命令”大概率就是这一步没勾上或者装完没重启终端。注意安装时还要点击“Install Now”旁边的“Customize installation”确认 pip 这个选项被勾选。pip 是 Python 的包管理器后续装第三方库全靠它。默认是勾上的但值得特地点开确认一下。2.2 验证安装命令行里跑通第一行代码安装完成后在键盘上按 Win R输入 cmd 回车打开命令行窗口。依次做两个验证先输入 python --version看到类似 Python 3.12.4 的输出就说明安装成功再输入 python回车后进入交互模式提示符变成 这时候输入 print(hello)如果屏幕上打印出 hello就说明 Python 解释器完全正常。我有个习惯是再验证一下 pip 是否可用输入 pip --version能看到 pip 和对应的 Python 版本路径即可。这个步骤是为了避免后面装第三方库时才发现 pip 坏了到时候排查的范围会变大。进入交互模式后你其实已经开始“写 Python”了。在 后面敲一行代码按回车解释器就会立刻执行并返回结果这叫 REPL读入-求值-输出循环适合做小实验。但真正的程序都是用文本编辑器写进一个 .py 文件再运行的这就是下一步要解决的事。2.3 编辑器选型IDLE、Thonny 还是 VSCode写 Python 不一定要用重型 IDE。零基础第一个小时我推荐两个方案直接用 Python 自带的 IDLE或者用 VSCode 加 Python 扩展。IDLE 的好处是零额外配置装完 Python 就有字体大、界面简洁缺点是提示功能很弱时间长了会觉得不够用。VSCode 则需要自行下载安装首次使用需要装一个名为“Python”的官方扩展扩展市场里搜 Python认准发布方是 Microsoft。装完扩展后打开 .py 文件按 F5 或点右上角的运行按钮就能直接跑脚本。VSCode 的优势是代码补全、错误检查、调试都做得很好而且它不只是 Python 编辑器以后要是学前端、写 Shell 脚本都能复用。不推荐 PyCharm 作为第一个小时的入门工具。PyCharm 功能非常强大但它启动慢、项目概念复杂容易让新手的注意力从“学 Python”转移到“学工具”。等你写过几十个脚本之后再切到 PyCharm 也不迟。2.4 环境变量换了位置为什么安装完还是要重启终端环境变量修改后已经打开的命令行窗口不会自动加载新值。所以安装完 Python 之后如果仍用之前开着的 cmd 窗口运行 python系统会提示找不到命令。这时候不是你的安装有问题而是终端没“刷新”。解决方案很简单关掉命令行窗口重新打开一个或者直接重启一次电脑。如果重启后依然提示 python 不是内部或外部命令那就要手动检查环境变量。在 Windows 搜索框输入“环境变量”打开“编辑系统环境变量”在“系统变量”里找到 Path看看里面有没有 Python 的安装路径和 Scripts 子目录路径。没有的话手动加进去路径通常在 C:\Users\你的用户名\AppData\Local\Programs\Python\Python312\ 这样的位置。把这两个路径加进 Path确定保存后重新开终端问题就解决了。3. 20分钟吃透 Python 核心语法把规则讲成人话3.1 变量与数据类型一切都在内存里贴标签Python 里的变量不需要提前声明类型直接赋值就行。比如 name 张三这个操作本质上是在内存里创建了一个字符串对象然后贴上一个叫 name 的标签。之后你写 name 18标签没变但贴的东西变成了整数对象。这种动态特性让新人写起来很爽但也有代价你心里要清楚变量名只是标签数据才有类型。常见的四种数据类型必须一眼认出整数int、浮点数float、字符串str和布尔值bool。字符串记得加引号不管是单引号还是双引号都行但要成对出现布尔值只有 True 和 False 两个首字母必须大写这在 Python 里是硬性规定。还有一个很实用的函数叫 type()可以查看数据的类型。比如 type(123) 返回 inttype(123) 返回 str。新手容易混淆的是数字 123 和字符串 123它们看起来一样但一个是数、能加减乘除另一个是文本、只能拼接。用 type() 去检验是最直观的学习方法。3.2 输入与输出让程序和用户对话第一个小工具要想“实用”大概率需要接收用户的输入。Python 里 input() 函数负责从键盘读取内容它有一个特性不管用户输入什么读取到的都是字符串。比如 age input(请输入年龄)用户敲了 18 进去age 这个变量的类型是 str 而不是 int。如果你想做 age int(age) 这样的转换就需要用到 int() 强制转换。输出端则用 print()。几个实用技巧print 可以一次接收多个参数print(结果, 3) 会输出“结果 3”中间会自动加一个空格print 结尾默认换行如果想不换行可以加 end 参数格式化输出字符串推荐用 f-string也就是在字符串前加一个 f用花括号嵌入变量比如 print(f用户年龄是{age})这种方式可读性最好而且运行效率也不差。3.3 条件判断让程序分情况执行if 语句是让程序“有脑子”的关键。结构很简单score 85 if score 60: print(及格了) else: print(没及格)这里有三个初学者容易犯的错。第一if 后面的条件表达式结尾要加英文冒号漏了必报语法错误。第二下一行必须缩进通常是四个空格Python 用缩进表示代码块的范围这和其他语言用大括号完全不同。第三判断等值用两个等号 一个等号是赋值写混了不会报错但逻辑完全不对。多个条件用 elif可以连写多个分支。条件之间想组合用 and、or 这两个逻辑运算符。比如 if score 60 and score 90: 表示“及格且没到优秀”。这些组合逻辑在实用程序里经常用到比如判断文件类型时既要看后缀名、又要看大小写。3.4 循环重复的事交给计算机for 循环是自动化批量处理的核心。最常见的写法是 for i in range(5):意思是让 i 依次取值 0、1、2、3、4每取一次就执行一次循环体。range 这个函数可以只写一个参数表示结束数不包含可以写两个参数表示起始和结束还可以写三个参数表示步长。如果想要遍历列表里的每个元素直接写 for item in 列表名: 就行。遍历字典则用 for key in 字典名:默认拿到的是键。循环加条件的组合是实用程序里最常见的结构对一批文件逐个判断、逐个处理本质上就是一次 for 循环套一个 if 判断。while 循环用的场景相对少一些但有几类问题必须用它不知道要循环多少次、需要根据条件中途退出。注意别让 while 的条件永远为真否则就成了死循环。凡是需要让程序停下来等用户输入“是/否”再决定要不要继续执行的用 while 配合 break 最合适。3.5 定义函数把逻辑包成积木程序一旦超过 30 行全部塞在一起就很难读。函数就是解决这个问题的把一段逻辑命名、封装以后反复调用。定义用 def 关键字def add(x, y): return x y初学者会觉得函数是“高级内容”其实它就是把代码装进一个盒子里用 return 把结果递出来。函数不一定非要参数也不一定非要返回值。比如一个打印分隔线的函数可以写成 def print_line(): print(- * 20)括号里留空函数体里没有任何 return这种函数的作用就是执行一段动作。函数真正的威力是参数化同样的逻辑传入不同的参数就能处理不同的数据。后面批量重命名程序里我会定义一个大函数把目录路径作为参数传进去这样换一个目录只需要改一处调用参数。养成“先功能后数据”的思维是写出整洁代码的关键一步。3.6 列表与字典两种最常用的容器列表用方括号有序、可修改、元素可以是任意类型。最常用的操作包括索引取值、切片、append 添加元素、len() 获取长度、遍历。字典用花括号由键值对组成就像一本“查名字找电话”的通讯录。取某个键的值用 字典名[键名]如果键不存在会报 KeyError所以更稳妥的做法是用 字典名.get(键名, 默认值)。实用程序里经常遇到“从一堆文件里挑出需要处理的再按规则改名”这种需求这时列表负责装候选文件清单字典则可以记录原名和新名的对应关系。把数据组织方式想清楚了代码自然就顺了。4. 20分钟写出第一个实用程序批量重命名文件4.1 先规划再写码程序要解决什么现在进入实战环节。假设你有一个文件夹里面的文件名都是 IMG_001.jpg、IMG_002.jpg 这种相机默认命名你希望把它们改成 2024_生日_01.jpg、2024_生日_02.jpg 这种有意义的命名。手工右键重命名一百个文件既枯燥又容易出错而这个需求恰好能用 Python 轻松搞定。这个程序的设计思路是让用户输入文件夹路径 → 程序列出该目录下所有文件 → 对每个文件判断后缀名 → 生成新名字并重命名。整个过程只需要用到三个标准库模块os 用来操作文件和目录glob 或 os.listdir 用来获取文件列表re 可选用于更高级的量替换但初版先不用正则。这是典型的“用户需求驱动”编码思路先想清楚输入是什么、输出是什么、边界条件是什么比如文件重名怎么办再动手写代码。很多新手一上来就写代码写一半发现逻辑漏了然后开始打补丁最后代码一团糟。先写注释再写代码比啥都管用。4.2 完整代码逐行拆解直接给出完整的脚本然后逐块解释import os folder input(请输入文件夹路径) # 切换当前工作目录到目标文件夹 os.chdir(folder) # 获取文件夹下的所有文件 files os.listdir(.) # 把文件名和它的后缀名分开处理 for f in files: if not os.path.isfile(f): continue name, ext os.path.splitext(f) if ext.lower() not in (.jpg, .jpeg, .png): continue # 用序号生成新文件名 new_name fphoto_{name}_renamed{ext} os.rename(f, new_name) print(重命名完成)这段代码的精髓在于几个细节。第一os.path.splitext() 会把 “IMG_001.jpg” 拆成 (“IMG_001”, “.jpg”)返回的是一个元组所以才有 name, ext 这种同时赋值的写法。第二用 ext.lower() 把后缀转成小写再判断是为了兼容 .JPG 这种大写后缀。第三os.path.isfile(f) 是过滤掉文件夹自身因为 listdir 会连子目录一起列出来如果不过滤os.rename 就会把目录也改了。上面这是一个最简可运行版本但它有命名冲突的风险如果目录里已经有 photo_IMG_001_renamed.jpg 这个文件再次运行时就会重名。解决方法是先判断目标文件名是否存在存在就跳过或者加个时间戳。这就是“第一版先能跑第二版再想健壮性”的迭代节奏。4.3 扩展加入序号、过滤条件和时间戳初版重命名没有规律只是给文件名加了后缀实用性一般。真正的批量重命名更常见的诉求是加序号jd_001.jpg、jd_002.jpg。实现方式是用 enumerate 在循环里取序号import os folder input(请输入文件夹路径) prefix input(请输入文件名前缀) os.chdir(folder) files [f for f in os.listdir(.) if os.path.isfile(f)] # 只保留图片文件 files [f for f in files if os.path.splitext(f)[1].lower() in (.jpg, .jpeg, .png)] for idx, f in enumerate(files, start1): ext os.path.splitext(f)[1] new_name f{prefix}_{idx:03d}{ext} # 如果目标文件名已存在跳过 if os.path.exists(new_name): print(f跳过{f} - {new_name} 已存在) continue os.rename(f, new_name) print(全部处理完成)这里有两个非常好用的语法点列表推导式把“筛选”写在一行里idx:03d 是格式化语法的补充表示序号至少占 3 位、不够补零。有了补零排序结果才会是正确的 01、02、…、100而不是 1、10、2 这种乱序。这个细节在批量排序场景里非常关键很多人文件排序乱就是没补零。处理完成后我再加一句询问逻辑是否继续处理下一个文件夹用 while True 包住主流程输入 y 就重新走一遍输入 n 或直接回车就 break 退出。这样一个小工具就真的能在日常用起来了而不是一个演示完就被忘掉的作业。5. 常见报错与避坑指南把遇到的坑一次填平5.1 安装环节的常见问题慢、装不上、环境变量失效官网下载慢可以换用国内镜像站下载安装包注意校验文件名和官网一致也可以用 winget 命令行安装在 cmd 里输入 winget install Python.Python.3.12 就能自动从官方源拉取。安装后双击没有反应先看屏幕右下角有没有弹窗出现 UAC 提示就点“是”继续如果干脆没有反应用管理员身份重新运行安装程序并检查杀毒软件是否拦截了安装进程。python 提示“不是内部或外部命令”原因几乎都是 PATH 没配好。按前面说的手动检查 Path 里有没有 Python 安装目录和 Scripts 目录注意避免把用户变量和系统变量搞混。改完环境变量后务必重启命令行窗口。5.2 运行时第一波报错语法错误的三种典型IndentationError: expected an indented block说明该缩进的地方没有缩进。按一下 TAB 或四个空格原则是同一个代码块缩进级别一致。SyntaxError: invalid syntax常见于中文标点混入代码里比如用了中文的冒号“”而不是英文冒号“:”或者引号不成对或者某一行末尾缺少冒号。检查这一行和上一行逐个字符看。NameError: name ‘xxx’ is not defined变量名拼写不一致或函数名打错了。Python 是大小写敏感的name 和 Name 是两个不同的变量务必核对变量定义和使用处的大小写。这三种错误在入门阶段占 8 成以上遇到别慌看提示里指出的行号绝大多数能一眼定位。常用的排查办法是“二分注释”把代码的后半段注释掉如果错误消失说明问题在后半段逐步缩小范围比盯着全文发呆高效得多。5.3 中文与文件路径问题编码是隐性刺客Python 3 默认源文件编码是 UTF-8但在 Windows 的 cmd 窗口里输出中文偶尔会乱码。如果遇到了在 Windows 终端里执行 chcp 65001 切换代码页或者代码最顶部加一行 # -- coding: utf-8 -- 表明编码虽然 Python 3 默认就是 UTF-8但加上对老环境的兼容有好处。文件路径里带中文更容易出问题。比如文件夹叫“D:\素材\图片”在输入进 input() 时没问题但如果后续要在命令行里拼接路径有些工具会转义错误。稳妥的做法是路径统一用正斜杠 / 表示D:/素材/图片Python 在 Windows 下能正常识别。另外不要手动复制“带引号的路径”在 Windows 资源管理器复制文件夹路径时不会带引号但在某些软件里复制会带上这是首尾空格和引号导致的路径识别失败肉眼很难发现。5.4 实用程序运行中特有的两个坑第一个坑是 os.rename 在文件被占用时抛 PermissionError比如该图片正在看图软件里打开着。解决方法是先关闭占用图片的程序再运行脚本或者在代码里用 try-except 捕获 PermissionError 并提示用户关闭相关软件。第二个坑是“运行了几次之后文件名越改越长”。很多初版重命名脚本用旧文件名拼新前缀第一次运行把 IMG_001.jpg 变成 IMG_001_new.jpg第二次运行又会变成 IMG_001_new_new.jpg。要避免这种问题重命名脚本最好具备“幂等性”目标名不能依赖源文件名而是依赖一个独立的规则比如序号加时间戳或者运行前先检查目标文件名是否已带特定后缀带上就跳过。报错信息常见原因快速解决方案SyntaxError: invalid syntax中文符号、缺少冒号检查当前行号的标点和结尾IndentationError缩进缺失用 Tab 或 4 空格统一缩进NameError变量名写错核对定义处与使用处拼写KeyError字典键不存在改用 get() 方法取默认值PermissionError文件被占用关闭相关程序后再运行6. 1 小时后还能怎么走从写脚本到解决问题的思维如果你完整跟到了这里现在应该已经拥有一条“把需求变成程序”的链路分析问题 — 拆解步骤 — 写代码 — 排错 — 跑通。这份能力比单纯记住几个语法点值钱得多。后续往哪个方向踩油门取决于你的需求想处理 Excel 表格和数据分析去学 pandas想自动收集网页信息去学 requests 和 BeautifulSoup想写机器人控制或者物联网小项目去学 Micropython 配合单片机。我的经验是每学一个方向都带着一个“最近想做的事”去学。比如“每周要汇总一堆 Excel 报表”就直接搜“Python 读取合并 Excel”代码写出来、跑通比背十个 API 都有用。Python 的生态让你根本不需要重复造轮子绝大多数常见需求都有现成库你只需要学会“找到它、看懂它的示例、改成自己的参数”。最后一心想提醒的是一定要亲手敲不要复制粘贴运行。敲的过程才是大脑和代码建立连接的过程错误会暴露你的理解盲区而这些盲区恰恰躲过了所有教程。哪怕这段代码你照抄了三遍才跑通它也会比你看十遍视频更有价值。把这 1 小时的内容消化掉你就不再是“没写过代码的人”了。遇到重复、枯燥、批量的事务时你的第一反应会是“这能不能让 Python 干”而这就是从工具使用者走向工具制造者的第一个标志。
返回列表