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

os.startfile()在Fedora(Linux)平台无法运行,如何实现打印功能?

Linux(Fedora)环境下Python打印功能实现方案

Fedora 默认使用CUPS作为系统打印服务,你可以通过调用CUPS提供的lp命令实现文本打印,替代Windows下的os.startfile操作。

调整说明

  • 原有代码中的tempfile.mktemp()已被官方标记为不安全方法,建议改用tempfile.NamedTemporaryFile生成临时文件
  • 打印操作通过Python标准库subprocess调用系统命令实现,无需额外安装第三方依赖

完整可运行代码示例

import tempfile
import subprocess
import os
from tkinter import END

# 生成临时文本文件
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as f:
    f.write(self.txt_billArea.get('1.0', END))
    temp_file_path = f.name

try:
    # 基础打印调用
    subprocess.run(['lp', temp_file_path], check=True)
    
    # 可选进阶参数:
    # 指定打印机:subprocess.run(['lp', '-d', '你的打印机名', temp_file_path], check=True)
    # 打印多份:subprocess.run(['lp', '-n', '3', temp_file_path], check=True) 这里3代表打印3份
finally:
    # 打印完成后删除临时文件
    os.unlink(temp_file_path)

补充说明

你可以在Fedora终端执行lpstat -p命令,查看当前系统已配置的所有打印机名称。如果需要打印PDF、图片等非文本格式文件,lp命令也原生支持,直接传入对应文件路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:03