У меня есть сценарий:
if __name__ == '__main__':
try:
file = sys.argv[1]
with open (file, 'rb') as img_file:
Я запускаю скрипт в терминале как:
файл python3 script.py
Я хочу учесть 2 случая, когда указанный файл не существует, а скрипт печатает «файл не существует», а также когда файл не указывается пользователем (python3 script.py), а скрипт печатает «файл не указан ". Как эти 2 исключения должны быть включены в сценарий?
Обратите внимание, что печать сообщения и создание исключения — это две большие разницы. Что вы хотите из двух?






import sys
try:
file = sys.argv[1]
with open(file, 'rb') as img_file:
pass
except IndexError:
print("file not specified")
raise
except FileNotFoundError:
print("file doesn't exist")
raise
Я рекомендую проверять перед логикой напрямую, а не перехватывать исключение с помощью блока отверстий.
import os
import sys
if __name__ == '__main__':
if len(sys.argv) < 2:
print('file not specified')
sys.exit(1)
file = sys.argv[1]
if not os.path.exists(file):
print('file {} does not exists'.format(file))
sys.exit(1)
if not os.path.isfile(file):
print('{} is not a file'.format(file))
sys.exit(1)
with open (file, 'rb') as img_file:
# TODO: your logic here
pass
Пожалуйста, обновите свой вопрос с кодом, который вы пробовали.