Выполнение скрипта с использованием Popen завершается неудачно.
-
16-09-2019 - |
Вопрос
Мне нужно выполнить скрипт в фоновом режиме через службу.
Служба запускает сценарий с помощью Popen.
p = Popen('/path/to/script/script.py', shell=True)
Почему следующий скрипт не работает, когда я включаю запись файла в цикл for?
#!/usr/bin/python
import os
import time
def run():
fd = open('/home/dilleyjrr/testOutput.txt', 'w')
fd.write('Start:\n')
fd.flush()
for x in (1,2,3,4,5):
fd.write(x + '\n')
fd.flush()
time.sleep(1)
fd.write('Done!!!!\n')
fd.flush()
fd.close()
if __name__ == '__main__':
run()
Решение
Вот ваша ошибка:
for x in (1,2,3,4,5):
fd.write(x + '\n')
Вы не можете суммировать int в строку.Вместо этого используйте (например)
for x in (1,2,3,4,5):
fd.write('%s\n' % x)
Другие советы
Какую ошибку вы получаете?Трудно увидеть проблему без ошибки.В любом случае файл открыт где-то еще?
Не связан с StackOverflow