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

如何用Python打印文件夹中最后保存的文本文件内容

解决打印文件夹中最新文本文件内容的问题

你的代码核心问题在于:write(max_file)是把文件路径字符串写入了临时文件,而非目标文件的内容,所以打印出来的是路径而非文件内容。下面提供两种直接可行的解决方法:

方法一:直接打印原文件(最简单高效)

os.startfile支持直接对目标文件执行打印操作,无需额外生成临时文件:

import glob
import os

folder_path = r'C:\Users\Siciid\Desktop\restaurant\bill'
file_type = r'\*.txt'  # 修正原代码的路径匹配规则,确保只匹配后缀为.txt的文件
files = glob.glob(folder_path + file_type)

if files:  # 先判断文件夹内是否存在目标文件,避免空列表调用max报错
    max_file = max(files, key=os.path.getctime)
    os.startfile(max_file, "print")
else:
    print("文件夹中未找到任何txt文件")

方法二:读取内容写入临时文件再打印(适合需预处理内容的场景)

如果需要对文件内容做修改后再打印,或者原文件无法直接通过os.startfile打印,可以用这种方式:

import glob
import os
import tempfile

folder_path = r'C:\Users\Siciid\Desktop\restaurant\bill'
file_type = r'\*.txt'
files = glob.glob(folder_path + file_type)

if files:
    max_file = max(files, key=os.path.getctime)
    # 读取原文件内容(指定编码避免中文乱码)
    with open(max_file, 'r', encoding='utf-8') as f:
        file_content = f.read()
    # 创建临时文件并写入内容
    with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as temp_file:
        temp_file.write(file_content)
    # 打印临时文件
    os.startfile(temp_file.name, "print")
    # 若需打印后自动删除临时文件,可取消下面注释(注意部分打印程序可能需要文件存在至打印完成)
    # os.unlink(temp_file.name)
else:
    print("文件夹中未找到任何txt文件")

额外注意事项

  • 原代码的file_type = r'\*txt'匹配规则有误,应改为r'\*.txt',否则会匹配类似abctxt这类非标准txt文件;
  • 读取文件时指定编码(如utf-8),避免中文或特殊字符出现乱码;
  • 添加空文件判断,防止文件夹无txt文件时程序抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:25:27