2013-12-21 33 views
-4

我需要让我的电脑在从相机到达时自动打印图像。将图像发送到打印机,因为它们是从相机上传的

我的一个朋友建议此代码

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. 查找此搜索
  3. 打印图像1
  4. 暂停30秒(以等待下一个图像)
  5. 重复步骤1
+0

'os.listdir(monRep)'除非你有一个名为'/ **'的实际目录,否则*不会*工作......我假设你忽略了一条路径。 :-) –

+0

当然,我把真正的道路... – NocNockie

+0

你实际上是否试图实现你的想法? –

回答

2

因此,而不是打印一张随机照片的代码

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) 
+0

感谢您的帮助 的Python告诉我 类型错误:更换()至少需要2个参数(1给出) 任何想法? – NocNockie

+0

doublecheck,你逐字复制它 - 它在我的示例代码中被两个参数调用。确保那些单引号没有被你的编辑器弄坏了吧? –

+0

非常感谢它的工作。所有图像一次打印。但是我希望他们能够在到达最初文件夹的时候进行打印......如何让程序在一段时间后重复自我(例如,假设2分钟)。再次感谢您的帮助! – NocNockie