Выполнение скрипта с использованием Popen завершается неудачно.

StackOverflow https://stackoverflow.com/questions/1138111

  •  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)

Другие советы

Какую ошибку вы получаете?Трудно увидеть проблему без ошибки.В любом случае файл открыт где-то еще?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top