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

Python批量打印目录下docx文件顺序错乱问题及解决方法

打印指定目录下docx文件时顺序错乱的问题及解决

原始脚本

我写了一段Python脚本,用来扫描指定目录并打印所有.docx格式文件,代码如下:

import os
from pathlib import Path

# 设置要打印文件所在的路径
my_path = Path(__file__).parent / 'OUTPUT'
string_path = str(my_path)

# 列出目标文件夹下的所有文件
list_files = os.listdir(my_path)

# 将文件名列表转为完整路径列表
list_paths = [os.path.join(str(my_path), file) for file in list_files]

# 遍历路径列表打印所有文件的函数
def print_all():
    for item in list_paths:
        os.startfile(item, "print")

# 执行打印函数
print_all()

问题现象

脚本能正常把文件发送到默认网络打印机完成打印,但输出的文件顺序和目录中按文件名排序的顺序不一致(目录里文件命名为01_firstdoc.docx、02_seconddoc.docx……20_twentiethdoc.docx)。

疑问与尝试

我查了两篇相关帖子,其中一篇没有有效回复,另一篇的评论建议添加等待时间,但我不知道该怎么实现,也不确定这个方案适不适合我的场景,同时对评论里提到的「竞争条件」概念有疑问。

我的运行环境:Windows 10 Home、Python 3.10.5。

解决方法

按照建议在循环中添加time.sleep()后,问题已经解决。修改后的函数如下(注意需要额外导入time模块):

import time

def print_all():
    for item in list_paths:
        os.startfile(item, "print")
        time.sleep(10)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:15:16