Python 入门:写第一个能帮你干活的小脚本

举报
yd_229354244 发表于 2026/11/07 13:04:23 2026/11/07
【摘要】 学 Python 最容易走的弯路,是先背语法再找用途。反过来更有效:先定一个很小的、真实的任务,再为它学刚好够用的语法。下面这个例子只需要半小时,就能跑出第一个对你有用的脚本。一、先定任务:整理下载文件夹下载文件夹最容易乱:安装包、图片、文档混在一起。目标很具体:把文件按后缀自动分到不同文件夹,图片进「图片」,文档进「文档」,其余不动。这个任务只用到四样东西:读目录、判断后缀、建文件夹、移动...

学 Python 最容易走的弯路,是先背语法再找用途。反过来更有效:先定一个很小的、真实的任务,再为它学刚好够用的语法。下面这个例子只需要半小时,就能跑出第一个对你有用的脚本。

一、先定任务:整理下载文件夹

下载文件夹最容易乱:安装包、图片、文档混在一起。目标很具体:把文件按后缀自动分到不同文件夹,图片进「图片」,文档进「文档」,其余不动。这个任务只用到四样东西:读目录、判断后缀、建文件夹、移动文件。

二、环境:只装 Python 就够了

去 Python 官网下载安装包,安装时勾选“Add Python to PATH”,装完在终端输入 python --version,能看到版本号就说明好了。不用先装编辑器,记事本加终端就能开始;等写得多了,再换 VS Code 也不迟。虚拟环境可以先放一放,等你要装第三方库、或者同时做两个项目时再学。

三、核心代码:不到 30 行

import os
import shutil
from pathlib import Path

download = Path.home() / "Downloads"
rules = {
    "图片": {".jpg", ".png", ".gif"},
    "文档": {".pdf", ".docx", ".txt", ".md"},
}

for item in download.iterdir():
    if not item.is_file():
        continue
    target = None
    for folder, suffixes in rules.items():
        if item.suffix.lower() in suffixes:
            target = download / folder
            break
    if target is None:
        continue
    target.mkdir(exist_ok=True)
    shutil.move(str(item), str(target / item.name))
    print(f"已移动:{item.name} -> {folder}")

逐行理解比背下来重要。Path.home() 找到用户主目录;iterdir() 遍历文件夹里的每一项;is_file() 跳过子文件夹;suffix 取文件后缀;mkdir(exist_ok=True) 是“文件夹不存在才新建”,已经存在也不会报错;shutil.move 就是移动文件。字典 rules 把“后缀集合”和“目标文件夹”对应起来,想加一种类型,往集合里加一个后缀就行,不用改逻辑。

四、先在小范围试跑

直接对真正的下载文件夹动手之前,先建一个测试文件夹,放几个空文件进去,把代码里的 download 改成测试路径跑一遍。确认文件都去了该去的地方,再改回真实路径。这个习惯比任何语法都值钱:脚本一旦写错,移动几百个文件只需要一秒,找回来却要一下午。重要的文件夹操作前,先备份,或者先打印出“打算移动什么”,确认无误再真正执行。

五、从这 30 行长出更多用法

这个骨架稍加改动就能复用。把 rules 换成按月份分组,就成了按修改时间归档照片的脚本;把 print 换成写日志文件,就有了可追溯的记录;把 shutil.move 换成 shutil.copy,就变成备份脚本。下一步可以学的三样东西也都顺着这个任务来:用 argparse 让脚本接受命令行参数,用 datetime 按日期归档,用 requests 库下载网页内容并保存。每个新知识点都先挂在一个具体任务上,学完马上能用,就不容易忘。

Python 入门不需要一次学完所有语法。先让一个 30 行的小脚本替你整理一次文件夹,跑通、改对、再复用,入门这件事就算完成了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。