You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在桌面文件夹新增PDF时自动运行Python转换代码?

实现PDF自动转换为CSV的监控方案

核心需求

  • 监控桌面指定文件夹,仅对新上传的PDF文件自动执行CSV转换
  • 基于现有tabula转换逻辑,结合watchdog实现自动化

完整监控实现代码

以下是可直接运行的watchdog监控脚本,仅响应新创建的PDF文件,避免重复转换:

import time
import tabula
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

# 替换为你的目标监控文件夹路径
MONITOR_FOLDER = r"C:\Users\YourName\Desktop\指定文件夹"

class PDFConverterHandler(FileSystemEventHandler):
    def on_created(self, event):
        # 忽略文件夹创建事件,只处理文件
        if not event.is_directory:
            file_path = event.src_path
            # 仅处理PDF文件
            if file_path.lower().endswith(".pdf"):
                # 等待文件完全写入(避免VBA还没传输完成就触发转换)
                time.sleep(2)
                # 构造CSV输出路径,与原PDF同目录、同名
                csv_path = file_path.rsplit(".", 1)[0] + ".csv"
                # 执行转换逻辑
                tabula.convert_into(file_path, csv_path, pages="all")
                print(f"转换完成:{file_path} -> {csv_path}")

if __name__ == "__main__":
    event_handler = PDFConverterHandler()
    observer = Observer()
    observer.schedule(event_handler, MONITOR_FOLDER, recursive=False)
    observer.start()
    print(f"开始监控文件夹:{MONITOR_FOLDER}")
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

关键细节说明

  • 防止提前转换:添加time.sleep(2)是为了等待VBA完成PDF文件的写入,避免因文件未完全保存导致转换失败
  • 文件过滤:通过后缀判断仅处理PDF格式文件,忽略其他类型的新增文件
  • 输出路径匹配:CSV文件与原PDF保持同目录、同名,便于后续查找和管理
  • 终止方式:按下Ctrl+C即可停止监控脚本

配合VBA的注意事项

  • 确保VBA将PDF文件保存到MONITOR_FOLDER指定的绝对路径,路径需与Python脚本中的配置完全一致
  • VBA保存文件时建议使用覆盖模式,避免因重名文件导致的传输异常

内容的提问来源于stack exchange,提问作者SpanishCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:15:42