def worker(ip, started_date, full_path):
planner_file = full_path+"\\"+"export_"+str(ip)+".txt"
print "planner file", planner_file
arg_list = []
action ="MakeExport"
arg_list.append(upnp_path)
arg_lista.append(action)
arg_list.append(' ip=')
arg_list.append(ip)
arg_list.append(" 2>NULL")
command = ['python', arg_list]
p = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT)
output = p.stdout.read()
with open(planner_file, "a") as pf:
pf.write(output)
if __name__=='__main__':
rack_number, started_date, full_path, ips = main()
pid = os.getpid()
print('Main Process is started and PID is: ' + str(pid))
process_list = []
for ip in ips:
p = Process(target=worker, args=(ip, started_date, full_path))
p.start()
child_pid = str(p.pid)
print('PID is:' + child_pid)
process_list.append(child_pid)
children = multiprocessing.active_children()
# print process_list
while children != []:
time.sleep(1)
children = multiprocessing.active_children()
Я пытаюсь экспортировать некоторые данные IP-адресов в файлы txt. Хотя он работает нормально с одним IP-адресом, если я попробую свой скрипт для нескольких IP-адресов, я получу следующую ошибку во всех других текстовых файлах ip.
Для первого ip-адреса скрипт корректно экспортирует данные. Для всех остальных оставшихся ips он говорит;
"Процесс не может получить доступ к файлу, поскольку он используется другим процессом".
Например: export_1.8.5.20.txt (первые данные ip экспортированы правильно) export_1.8.5.21.txt (говорит, что процесс не может получить доступ к файлу)
Я не получаю никаких ошибок от моего скрипта. Просто получите указанные выше данные в txt-файлах.
Любая помощь будет оценена по достоинству. Спасибо
Popen()
или при звонкеopen()
? Другими словами, можем ли мы увидеть трассировку стека вашей ошибки? - person BoarGules   schedule 15.05.2017