当前位置:首页>python>这几个Python代码,几分钟能搞定工作速度

这几个Python代码,几分钟能搞定工作速度

  • 2026-10-09 15:54:03
这几个Python代码,几分钟能搞定工作速度

真正消耗人的往往不是大任务,而是那些「明明几分钟能搞定、但每次都要现找工具」的零碎活。这一篇收的六个脚本,正好填这些缝:视频太大要压、动图要截、发图前想抹掉定位、想定时提醒、顺手看看哪个端口开着、新建项目想一键把目录搭好。每一个都不复杂,但凑齐了能省下不少来回切换的工夫。

1. 视频压缩瘦身

手机拍的视频动辄几百兆,发人发平台都嫌大。用 moviepy 按码率重压一遍,体积能小一大圈,画质损失在可接受范围。

(需 pip install moviepy,并安装 ffmpeg)

from moviepy.editor import VideoFileClip

defcompress(inp, out, bitrate="1000k"):
    clip = VideoFileClip(inp)
    clip.write_videofile(out, bitrate=bitrate,
                         codec="libx264", audio_codec="aac")
    clip.close()

# compress("raw.mp4", "small.mp4", bitrate="800k")

小提示:bitrate 越小文件越小、画质越糊,800k~1500k 是常用区间;竖屏长视频还可以先 clip.resize(height=720) 再压,体积会再降一截。

2. 视频转 GIF 动图

要把一段操作演示做成动图发出去,不用开剪辑软件,截取其中几秒转成 GIF 即可。

(需 pip install moviepy + ffmpeg)

from moviepy.editor import VideoFileClip

defto_gif(inp, out="out.gif", start=0, end=5, width=480):
    clip = VideoFileClip(inp).subclip(start, end).resize(width=width)
    clip.write_gif(out, fps=12)
    clip.close()

# to_gif("demo.mp4", start=2, end=6)

小提示:GIF 体积对时长和尺寸很敏感,建议控制在 3~6 秒、宽度 480 以内;fps 降到 10 左右肉眼差别不大,文件却能小不少。

3. 发图前清除定位等隐私信息

照片里藏着拍摄时间、设备、 GPS 定位这类元数据,直接发出去等于把行踪也带出去了。重新编码一遍就能把这些元数据抹掉。

(需 pip install pillow)

from PIL import Image
import os

defclear_meta(src, dst):
    im = Image.open(src).convert("RGB")
    im.save(dst)              # 重新编码,不写入任何元数据

os.makedirs("clean", exist_ok=True)
for n in os.listdir("photos"):
if n.lower().endswith((".jpg", ".png")):
        clear_meta(f"photos/{n}", f"clean/{n}")

小提示:重新保存会丢元数据、也有极轻微画质损失,换来的是定位和设备信息彻底清除;对外发图、尤其是含位置的照片,先过这一道更稳妥。

4. 终端倒计时提醒

煮个面、做个二十五分钟专注,想有个不看手机也能盯着的提醒,终端里跑个倒计时就行,零依赖。

(标准库,无需安装)

import time, sys

defcountdown(seconds):
while seconds:
        m, s = divmod(seconds, 60)
        sys.stdout.write(f"\r 剩余 {m:02d}:{s:02d}")
        sys.stdout.flush()
        time.sleep(1)
        seconds -= 1
    print("\r 时间到!")

# countdown(1500)   # 25 分钟

小提示:\r 是把光标移回行首,配合 flush 就能在同一行刷新,形成跳动的数字;想更醒目可以在结束时加一声响铃或弹窗。

5. 端口连通性自查

本地起了服务,想知道某个端口到底开没开、是不是被占了,用 socket 探一下最快,零依赖。

(标准库,无需安装)

import socket

defscan(host, ports=(80, 443, 8080)):
for p in ports:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(0.5)
        ok = sock.connect_ex((host, p)) == 0
        print(f"{host}:{p}{'开放'if ok else'关闭'}")
        sock.close()

# scan("127.0.0.1")

小提示:只对自己有权限的主机做这类检查;settimeout 设小一点避免卡住,端口范围一大就会比较慢,按需缩小列表即可。

6. 一键生成项目目录骨架

每开一个新项目都要手动建一堆文件夹,写一次骨架模板,以后新建项目一条命令搞定。

(标准库,无需安装)

import os

defscaffold(base, struct):
for path in struct:
        os.makedirs(os.path.join(base, path), exist_ok=True)
    print("目录骨架已生成:", base)

skeleton = [
"src", "src/utils", "tests",
"docs", "data/raw", "data/out",
]
scaffold("my_project", skeleton)

小提示:exist_ok=True 保证重复运行不报错;把 skeleton 换成你自己的常用结构(比如加上 assets、logs),新建任何工程都能直接复用。


这六个脚本覆盖的是「多媒体处理、隐私、提醒、网络自查、工程初始化」几类零碎需求。它们单个都不起眼,但放在一起,刚好把日常里那些「下次再说」的小事,变成了敲一下就完的事。

最新文章

随机文章