Я пытаюсь создать простой сценарий удаления принтера в Python 3.4.1. Есть, вероятно, более простые способы сделать это, но это то, что у меня есть: я использую продукт от itertools
, беря данные из двух текстовых файлов в каталоге - один из них - список серверов, один - список принтеров.Проблемы с интервалом в выходном файле - использование продукта itertools для циклирования с использованием переменных из двух разных текстовых файлов для вывода на третий
код я прямо сейчас:
import webbrowser
from itertools import product
with open('servers.txt') as infile:
servers = infile.readlines()
with open('PRINTERS_toDelete.txt') as infile:
queues = infile.readlines()
strTemp1 = 'cscript c:\\windows\\system32\\prnmngr.vbs -d -p %s -s %s \n'
with open('RUN_THIS.txt', 'w') as outfile:
outfile.writelines(strTemp1 % (queue,server) for queue,server in product(queues,servers))
webbrowser.open('RUN_THIS.txt')
Выходной файл находится очень близко к тому, что мне нужно, но выглядит следующим образом:
cscript c:\windows\system32\prnmngr.vbs -d -p queue1
-s server1
cscript c:\windows\system32\prnmngr.vbs -d -p queue1
-s server2
cscript c:\windows\system32\prnmngr.vbs -d -p queue1
-s server3
cscript c:\windows\system32\prnmngr.vbs -d -p queue2
-s server1
cscript c:\windows\system32\prnmngr.vbs -d -p queue2
-s server2
cscript c:\windows\system32\prnmngr.vbs -d -p queue2
-s server3
cscript c:\windows\system32\prnmngr.vbs -d -p queue3
-s server1
cscript c:\windows\system32\prnmngr.vbs -d -p queue3
-s server2
cscript c:\windows\system32\prnmngr.vbs -d -p queue3
-s server3
cscript c:\windows\system32\prnmngr.vbs -d -p iHatePrinters -s server1
cscript c:\windows\system32\prnmngr.vbs -d -p iHatePrinters -s server2
cscript c:\windows\system32\prnmngr.vbs -d -p iHatePrinters -s server3
, где он должен выглядеть следующим образом:
cscript c:\windows\system32\prnmngr.vbs -d -p queue1 -s server1
cscript c:\windows\system32\prnmngr.vbs -d -p queue1 -s server2
cscript c:\windows\system32\prnmngr.vbs -d -p queue1 -s server3
cscript c:\windows\system32\prnmngr.vbs -d -p queue2 -s server1
cscript c:\windows\system32\prnmngr.vbs -d -p queue2 -s server2
cscript c:\windows\system32\prnmngr.vbs -d -p queue2 -s server3
cscript c:\windows\system32\prnmngr.vbs -d -p queue3 -s server1
cscript c:\windows\system32\prnmngr.vbs -d -p queue3 -s server2
cscript c:\windows\system32\prnmngr.vbs -d -p queue3 -s server3
cscript c:\windows\system32\prnmngr.vbs -d -p iHatePrinters -s server1
cscript c:\windows\system32\prnmngr.vbs -d -p iHatePrinters -s server2
cscript c:\windows\system32\prnmngr.vbs -d -p iHatePrinters -s server3
В принципе, существует ненужный разрыв строки между очередью и записью сервера. Также последняя запись кажется прекрасной (или, по крайней мере, лучше) предыдущей, поэтому я думаю, что она имеет какое-то отношение к тому, как она интерпретирует жесткий возврат в каждом из входных файлов. Дополнительное форматирование без пробелов для одной очереди на разных серверах и дополнительный разрыв строки между очередями будет идеальным, но не необходимым.
Я попытался немного поиграть, но не повезло - никаких мыслей?
ах, так что я должен был использовать карту и полосу там, хорошо. Спасибо, работает как шарм! – CharlieTango92