Я использую os.system("echo y | pscp.exe -q -i key.ppk file.txt server_location")
, который отлично работает. Я хочу, чтобы иметь возможность поймать исключения, когда передача по какой-то причине не удается. Можно ли это достичь?Исключение во время scp с использованием Python
ответ
os.system() возвращаемое значение зависит от операционной системы. На POSIX и, возможно, на некотором Windows, это будет работать:
retval = os.system(command)
print "command return value is %d" % (retval >> 8)
Там нет исключений для обработки там, только возвращение оболочки значения. Сдвиг бит происходит потому, что кто-то думал, что было бы полезно вернуть несколько вещей в одну переменную (первые 8 бит - это сигнал, который убил команду).
Возможно, вы захотите посмотреть на модуль подпроцесса вместо os.system(): он дает вам больше контроля (включая исключение из ненулевого возвращаемого значения, если вы используете subprocess.check_call()
или subprocess.check_output()
, даже если это не очень полезно: вам все равно нужно проверить возвращаемое значение оболочки, чтобы узнать, в чем проблема).
Хотя ниже должен работать, read about os.system() and os.wait() here
import os
import sys
# Saving os.system return_value
# See explanation for os.system(), os.wait() regarding the 2 different bytes received
ret_val = os.system(command)
# Exiting with ret_val, after shifting the lower irrelevant 8 bits
# (the lower 8 bits of os.wait() is the kill signal for the command)
sys.exit(ret_val >> 8)
- 1. Передача аргумента yes во время команды scp
- 2. Как отключить CTRL-C во время scp?
- 3. Python/Django генерирует исключение во время выполнения
- 4. Исключение во время выполнения
- 5. Исключение во время Collections.sort()
- 6. java.lang.AssertionError - Исключение во время тестирования сервлета с использованием Mockito
- 7. Исключение безопасности во время работы сайтов с использованием субдомена?
- 8. Исключение во время groupby pandas
- 9. Исключение из памяти Исключение во время выполнения
- 10. Исключение во время работы System.Threading.Tasks.Task
- 11. Исключение из памяти Исключение во время сериализации
- 12. Исключение во время работы условие?
- 13. Исключение во время разделения строки
- 14. Исключение BadImageFormat во время выполнения
- 15. Неизвестное исключение во время построения
- 16. SQL исключение во время выполнения
- 17. Странное исключение во время десериализации
- 18. Исключение Google.Apis.Http.ConfigurableMessageHandler во время выполнения
- 19. Исключение, полученное во время соединения с S3
- 20. Исключение Во время работы testng.xml с Maven
- 21. BitmapFactory.decodeByteArray исключение во время выполнения
- 22. Неожиданное исключение во время разбора
- 23. Исключение SQL во время выполнения
- 24. Поймать исключение во время выполнения
- 25. Фоновертор: исключение во время отмены
- 26. Исключение во время инициализации словаря
- 27. Исключение, возникшее во время рендеринга
- 28. Исключение во время Imap Fetch
- 29. Исключение во время дуговой земли
- 30. Предупреждения во время передачи данных SCP в PHP
'child_traceback' является полезным один также для подпроцесса. –
К сожалению, возвращаемое значение совпадает с нулевым, либо если файл успешно передан, а также если сервер находится в автономном режиме и соединение не установлено. – Demetris