2016-05-12 47 views
2

我正在嘗試編寫一個程序,該程序會將目錄中指定擴展名的所有文件連續打印出來。如果他們每次只能打印一次以上,現在就一次打印一次,那將是非常好的。如何將glob發現的文件發送到(默認)打印機

我打算繼續,我將運行,以避免目錄佔位符頭痛水珠的目錄中的.py文件...

我曾嘗試以下:

import os 
import glob 

os.startfile((glob.glob('*.docx*')), "print") 

這使我以下消息:

Traceback (most recent call last): 
    File "C:\Users\cmobley\Desktop\HI\print all in folder.py", line 11, in <module> 
    os.startfile((glob.glob('*.docx*')), "print") 
TypeError: Can't convert 'list' object to str implicitly 

我明白這裏有一些缺少的鏈接,我只是不能把我的手指放在它上面。我也嘗試了其他方法,但沒有成功。在使用帶打印參數的os.startfile之前,我已成功打印單個文檔。我非常適合初學者,所以請放輕鬆點!我正在使用python 3.5,所以我的glob模塊被更新。

+0

把它在一個週期。 – user3159253

回答

2

glob.glob返回一個字符串列表,你不能os.startfile列表,你必須爲列表中的每個字符串。這也解釋了TypeError: Can't convert 'list' object to str implicitly

import glob 
import os 

for filename in glob.glob('*.docx*'): 
    os.startfile(filename, "print") 

打印多份:

import glob 
import os 

numPrints = 10 

for filename in glob.glob('*.txt*'): 
    for i in range(numPrints): 
     print("Printing file", filename, "copy", i+1) 
     os.startfile(filename, "print") 
+0

這非常有幫助。我嘗試過類似的東西,但必須讓它過於複雜。在轉移到glob找到的下一個文件之前,想讓每個文件打印的想法都是例如10次。我需要一些方向! – Clint

+0

我不確定我是否正確理解,你想打印每一個文件十次? – Keatinge

+0

這是正確的 – Clint

相關問題