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()

 

或者是用 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()

 

files 是列表,shuffle(files)随机打乱后还是列表

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

    bmp = Image.open(files[0])

    scale = 1

    w,h = bmp.size

    hDC.StartDoc(files[0])

 

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

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

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