Chatterbox�
2021-05-29 03:18
采纳率: 100%
浏览 25

python 随机打印路径中的jpg图片失败

本人想用os模块实现随机引用路径中的jpg文件失败,求大神帮忙纠错

import win32print
import win32ui
from PIL import Image, ImageWin
from random import shuffle
import os

printer_name = win32print.GetDefaultPrinter()

for i in range(1):
    pth = r"C:/Users/77594/Desktop/test"
    files = [os.path.join(pth, fle) for fle in os.listdir(pth) if fle.endswith(".jpg")]
    shuffle(files)
    hDC = win32ui.CreateDC()
    hDC.CreatePrinterDC(printer_name)


    bmp = Image.open(files)

    scale = 1
    w,h = bmp.size
    hDC.StartDoc(files)
    hDC.StartPage()

    dib = ImageWin.Dib(bmp)

    dib.draw(hDC.GetHandleOutput(),(10,20,320,480))

    hDC.EndPage()
    hDC.EndDoc()
hDC.DeleteDC()
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳

    或者是用 f = random.choice(files) 

    import win32print
    import win32ui
    from PIL import Image, ImageWin
    import random
    import os
    printer_name = win32print.GetDefaultPrinter()
    for i in range(1):
        pth = r"C:/Users/77594/Desktop/test"
        files = [os.path.join(pth, fle) for fle in os.listdir(pth) if fle.endswith(".jpg")]
        f = random.choice(files)
        hDC = win32ui.CreateDC()
        hDC.CreatePrinterDC(printer_name)
        bmp = Image.open(f)
        scale = 1
        w,h = bmp.size
        hDC.StartDoc(f)
        hDC.StartPage()
        dib = ImageWin.Dib(bmp)
        dib.draw(hDC.GetHandleOutput(),(10,20,320,480))
        hDC.EndPage()
        hDC.EndDoc()
    hDC.DeleteDC()
    
    点赞 1 打赏 评论
  • files 是列表,shuffle(files)随机打乱后还是列表

    你打开 files 列表中第一个文件即可

        bmp = Image.open(files[0])

        scale = 1

        w,h = bmp.size

        hDC.StartDoc(files[0])

     

    点赞 打赏 评论
  • 有问必答小助手 2021-05-31 16:10

    您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

    ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

    【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
    【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632

    点赞 打赏 评论

相关推荐 更多相似问题