Если его убили, перезапустите сценарий Python - PullRequest
0 голосов
/ 28 мая 2020

Я пишу этот пост, потому что не нашел решения для своего конкретного случая c. Я ссылаюсь на эту статью, которая, однако, не сработала для меня в Windows 10 версии 1909.

Я запрограммировал сценарий «python_code_a.py», который выполняет загрузку по одному, все изображения, содержащиеся в локальной папке на сервере конвертера, и загружать их, всегда по одному, с сервера на мой P C в другой папке. Как работает сценарий, зависит от сервера, который является publi c и не принадлежит мне, поэтому примерно каждые два с половиной часа возможен сбой сценария из-за неожиданной ошибки подключения. Очевидно, нельзя учесть тот факт, что он весь день остается, наблюдая за оболочкой Python и действуя в случае остановки скрипта. Как сообщалось в статье выше, я скомпилировал второй файл с именем «python_code_b.py», задача которого - действовать в случае остановки «python_code_a.py» путем перезапуска последнего. Однако, когда я пытаюсь запустить его из CMD «python .exe», последний отвечает на ввод «...», ничего больше.

Я прилагаю общий пример « python_code_a.py ":

processnumber= 0

photosindex= 100000

photo = 0
path = 0

while photosindex<"number of photos in folder":
  photo = str('your_path'+str(photoindex)+'.png')
  path = str('your_path'+str(photoindex)+'.jpg')

  print ('It\'s converting: '+ photo)

  import requests
  r = requests.post(
      "converter_site",
      files={
          'image': open(photo , 'rb'),
      },
      headers={'api-key': 'your_api_key'}
  )

  file= r.json()


  json_output = file['output_url']


  import urllib.request

  while photosindex<'number of photos in folder':
      urllib.request.urlretrieve( json_output , path )
      print('Finished process number: '+str(processnumber))
      break

  photosindex= photosindex +1
  processnumber= processnumber +1

  print(
  )

print('---------------------------------------------------')
print('Every pending job has been completed.')
print(
)

Как решить эту проблему?

1 Ответ

0 голосов
/ 28 мая 2020

вы можете использовать захват ошибок:

  while photosindex<"number of photos in folder":
    try:
      @Your code
    except:
      print("Something else went wrong")

https://www.w3schools.com/python/python_try_except.asp

...