Как вызвать исключения, когда файл не указан и когда указанный файл не существует? pyth

У меня есть сценарий:

if __name__ == '__main__':
  try:
    file = sys.argv[1]

    with open (file, 'rb') as img_file:

Я запускаю скрипт в терминале как:

файл python3 script.py

Я хочу учесть 2 случая, когда указанный файл не существует, а скрипт печатает «файл не существует», а также когда файл не указывается пользователем (python3 script.py), а скрипт печатает «файл не указан ". Как эти 2 исключения должны быть включены в сценарий?

Пожалуйста, обновите свой вопрос с кодом, который вы пробовали.

quamrana 14.05.2022 16:45

Обратите внимание, что печать сообщения и создание исключения — это две большие разницы. Что вы хотите из двух?

user2246849 14.05.2022 16:48
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
21
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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

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