2013-12-21 58 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