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

Python程序执行批处理文件失败,报错无法读取.prn文件

问题原因及解决办法
  • 核心原因:工作目录不匹配
    手动双击运行批处理时,系统会自动把批文件所在文件夹设为当前工作目录,所以批处理里的example.prn(你报错里拼写成了exaple)如果是相对路径,能正常找到。但Python调用subprocess.Popen时,默认工作目录是Python脚本的运行目录,不是批处理所在的目录,导致lpr命令找不到指定的prn文件。

  • 解决办法
    调用subprocess.Popen时,通过cwd参数指定工作目录为批处理文件所在路径,这样批处理里的相对路径就能正确解析。修改后的代码如下:

    import os
    import subprocess
    
    def execute_batch_file(self):
        batch_file_path = r'C:\Users\UTENTE\Desktop\Programmi compilati Python\OP10\prova.bat'
        # 获取批处理文件所在目录
        batch_dir = os.path.dirname(batch_file_path)
        subprocess.Popen(batch_file_path, shell=True, cwd=batch_dir)
    

    也可以直接在批处理里把example.prn改成绝对路径,但用cwd参数不用修改批处理,更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:07:04