1
Я просто пытаюсь писать параллельно в два файла с помощью потоковой передачи.Написание Параллельно в два файла python
def dmesg (i):
cmd = 'dmesg'
print cmd
(status, cmd_out) = commands.getstatusoutput(cmd)
fil = open('dmesg_logs', 'w')
fil.write(cmd_out)
fil.close()
def dump (i):
cmd = 'lsmod'
print cmd
(status, cmd_out) = commands.getstatusoutput(cmd)
fil = open('logs', 'w')
fil.write(cmd_out)
fil.close()
if __name__ == "__main__":
t1 = threading.Thread(target = dmesg, args=(0,))
t1.start()
t2 = threading.Thread(target = dump, args=(0,))
t2.start()
while True :
"My own code"
Здесь моя проблема в том, что файл журналов не создан в потоке 2. Могу ли я понять, что делаю неправильно?
Я заменил ваши команды на 'ls' и' date', и он отлично сработал. Можете ли вы попробовать это? Также обратите внимание, что вы используете 'команды', когда вы, вероятно, должны использовать' subprocess'. –
@JohnZwinck Некоторые предлагают как для операций ввода-вывода, мы должны пойти для потоковой обработки и для операции с привязкой к процессору, нам нужно перейти на подпроцесс. –
@AvinashRaj: Я никогда ничего не говорил о том, чтобы использовать или не использовать потоки. Я сказал, что не используйте 'команды'. Это устарело. –