Форум сайта python.su
Подскажите как правильно обработать следующую ошибку:
Traceback (most recent call last):
File "C:\AddPrint.py", line 35, in <module>
AddNetworkPrinters(PathToServers, Printers)
File "C:\AddPrint.py", line 23, in AddNetworkPrinters
if win32print.OpenPrinter(r'\\'+x+'\\'+y):
pywintypes.error: (1801, 'OpenPrinter', 'Имя принтера задано неверно.')
Офлайн
как-то так:
try:
if win32print.OpenPrinter(r'\\'+x+'\\'+y):
...
except win32print.PrintError, error:
if error[0] == 1801:
...
elif error[0] == 1802:
...
Офлайн
Не проходит. Говорит что у модуля win32print нет объекта PrintError
Проблема вот в этой строке:
except win32print.PrintError, error:
Офлайн
Slonwin32print.PrintError я придумал))))
Не проходит. Говорит что у модуля win32print нет объекта PrintError
Проблема вот в этой строке:Не могу понять что сюда нужно вставить чтобы отрабатывало корректно.except win32print.PrintError, error:
Отредактировано (Март 25, 2009 08:09:48)
Офлайн
Да я понял =)
Импортировал модуль pywintypes, подставил:
except pywintypes.error as err:
if err[0] == 1801:
print ('test1')
elif err[0] == 1802:
print ('test2')
Traceback (most recent call last):
File "C:\AddPrint.py", line 40, in <module>
AddNetworkPrinters(PathToServers, Printers)
File "C:\AddPrint.py", line 27, in AddNetworkPrinters
if err[0] == 1801:
TypeError: 'error' object does not support indexing
Отредактировано (Март 25, 2009 08:34:59)
Офлайн
err.args
Офлайн
Появился еще один вопрос, как сравнить два списка?
допустим:
list1 = ['str1', 'str2']
list2 = ['str1', 'str2', 'str3']
for x in list1:
for y in list2:
if x==y:
.........
Офлайн
Для начала, неплохо было б сравнить длины списков
if len(filter(lambda i: i==0, map(lambda x,y:1 if x==y else 0, list1,list2)))==0:
print True
else:
print False
Отредактировано (Март 25, 2009 15:26:08)
Офлайн
Помогите пожалуйста понять значение функций map() и filter():
Что делает функция map(), если к примеру на вход получает:
map(1, list1,list2)
print (map(1, list1,list2))
<map object at 0x00F14D10>
Офлайн
Help on built-in function map in module __builtin__:
map(…)
map(function, sequence) -> list
Return a list of the results of applying the function to the items of
the argument sequence(s). If more than one sequence is given, the
function is called with an argument list consisting of the corresponding
item of each sequence, substituting None for missing values when not all
sequences have the same length. If the function is None, return a list of
the items of the sequence (or a list of tuples if more than one sequence).
Help on built-in function filter in module __builtin__:
filter(…)
filter(function or None, sequence) -> list, tuple, or string
Return those items of sequence for which function(item) is true. If
function is None, return the items that are true. If sequence is a tuple
or string, return the same type, else return a list.
Офлайн