夜雨聆风学习资料网

ARTICLE · 1092316

8、几十份 PDF 要合并、拆分、加水印,AI 写了三段脚本一次搞定

8、几十份 PDF 要合并、拆分、加水印,AI 写了三段脚本一次搞定

「AI 帮我写」第 8 期

摘要:不用一遍遍刷文件夹了。20 行代码盯着共享目录,有新文件立刻提示,顺带留下记录。

有一种等待叫等别人给你发文件。

你和同事说好,设计稿今天放共享文件夹里。于是你每隔半小时点开一次文件夹,刷新,没有。再点开,还是没有。

这期写个看门狗。它替你每 30 秒看一次,文件一进来,你的电脑响一声。

图 1:盯着共享文件夹的眼睛

脚本:盯着文件夹

from pathlib import Path

import time

import winsound# Windows 自带模块,用来发提示音

# 要盯的文件夹,网络共享路径也支持

folder = Path(r"\\192.168.1.10\共享\设计稿")

# 先记住当前已有哪些文件,作为对比的基准

known = {f.name for f in folder.iterdir()}

print("开始盯着了,一共", len(known), "个文件")

while True:

#重新扫一遍现在的文件名单

now= {f.name for f in folder.iterdir()}

#集合相减,差集就是这轮新出现的文件

new= now - known

forname in new:

print(time.strftime("%H:%M:%S"),"新文件:", name)

winsound.MessageBeep()#响一声,不用看屏幕也能听见

#把当前名单存下来,作为下一轮的对比基准

known= now

#休息 30 秒再看,别把 CPU 和高频访问压力拉满

time.sleep(30)

把脚本存成 看门狗.py,双击运行,窗口留着别关。

想让它开机就自动跑,把运行命令写成一个 bat,再用计划任务设成登录时启动,或者丢进启动文件夹。

图 2:每 30 秒循环检查一次

扩展方向,用追问实现

1. “新文件出现时把文件名和到达时间追加写进一个日志文件”

2. “通过企业微信机器人或邮件给我发一条消息,不要只弹窗”

3. “文件没在规定时间内到达就提醒我,比如超过下午 6 点就报警”

第 3 条特别适合催进度。你把截止时间写进脚本,它比你有耐心,也不会因为不好意思就不提醒。

图 3:新文件到达时同步提醒

3 个高频坑

1. 网络共享断开就报错:给 iterdir 那段套一层 try 异常处理,断线时等下一轮再试,别让脚本直接退出

2. 中文文件名显示成乱码:脚本文件存成 UTF-8 编码,命令行里执行 chcp 65001 切到 UTF-8 代码页

3. 大文件传到一半就被识别:文件正在复制时也会出现文件名,让 AI 加一个判断,文件大小连续两次不变才认为传完了

安全红线

1. 脚本只在文件夹里读文件名,不打开也不上传文件内容,这点你可以自己看代码确认

2. 有些公司对共享目录的监控有规定,动手前先和 IT 或者主管确认一句,别把自己弄成违规的那一方

3. 只盯工作相关的目录,同事的私人文件夹不要碰

图 4:日志滚动,一切正常

相关学习资料