【问题标题】:Send images to printer as they are uploaded from camera [closed]从相机上传图像时将图像发送到打印机[关闭]
【发布时间】:2013-12-21 15:36:20
【问题描述】:

我需要让我的计算机自动打印来自相机的图像。

我的一个朋友推荐了这个代码

monRep = "/**/Desktop/DATA/"
import os, mimetypes, random

fpaths = []
for fname in os.listdir(monRep):
    fpath = os.path.join(monRep, fname)
    if os.path.isfile(fpath):
        mt = mimetypes.guess_type(fpath)[0]
        ext = os.path.splitext(fpath)[1]
        if mt: mt = mt.split('/')[0].lower()
        else: mt = False
        #if ext.lower() in ('.bmp','.pict', '.JPG', '.jpg'): mt = 'image'
        if mt in ('image',): fpaths.append(fpath)

choix = random.choice(fpaths)
command = "lpr "+choix
print (command)
os.system(command)

它有效,但仅适用于一张图片。我需要打印所有图像。

这是我的想法

  1. 检查文件夹“DATA”
  2. 查找图片1
  3. 打印图像1
  4. 暂停 30 秒(等待下一张图片)
  5. 重复步骤 1

【问题讨论】:

  • os.listdir(monRep) 将不工作,除非你有一个名为/** 的实际目录...我假设你在那儿省略了一条路径。 :-)
  • 当然,我放了一个真实的路径...
  • 你真的尝试过实现你的想法吗?

标签: python image printing


【解决方案1】:

所以,不是这个打印一张随机照片的代码

choix = random.choice(fpaths)
command = "lpr "+choix
print (command)
os.system(command)

你想全部打印出来,写个循环就好了:

for fpath in fpaths:
    command = "lpr "+fpath
    print (command)
    os.system(command)

我建议将文件移动到一个新文件夹,这样下次运行时就不会重复打印:

for fpath in fpaths:
    newpath = fpath.replace('/DATA/','/DONE/')
    os.rename(fpath,newpath)
    command = "lpr "+newpath
    print (command)
    os.system(command)

【讨论】:

  • 感谢您的帮助 Python 告诉我 TypeError: replace() 需要至少 2 个参数(给定 1 个)知道吗?
  • 仔细检查您是否逐字复制 - 在我的示例代码中使用两个参数调用它。确保那些单引号没有被你的编辑器弄乱?
  • 非常感谢它有效。一次打印所有图像。但是我希望它们在到达初始文件夹时就被打印出来……我怎样才能让程序在一段时间后重复自己(例如 2 分钟)。再次感谢您的帮助!
猜你喜欢
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
  • 2014-04-22
  • 1970-01-01
  • 2020-01-29
  • 2018-06-15
  • 1970-01-01
相关资源
最近更新 更多