Функция открытия файла с Try & Except Python 2.7.1 - PullRequest
6 голосов
/ 05 декабря 2011
def FileCheck(fn):       
       try:
           fn=open("TestFile.txt","U") 
       except IOError: 
           print "Error: File does not appear to exist."
       return 0 

Я пытаюсь создать функцию, которая проверяет, существует ли файл, а если нет, выводит сообщение об ошибке и возвращает 0. Почему это не работает ???

Ответы [ 3 ]

17 голосов
/ 05 декабря 2011

Вам нужно будет сделать отступ 0, если вы хотите вернуться из блока исключений.Кроме того, ваш аргумент ничего не делает.Вместо того, чтобы назначить ему дескриптор файла, я предполагаю, что вы хотите, чтобы эта функция могла тестировать любой файл?Если нет, вам не нужны никакие аргументы.

def FileCheck(fn):
    try:
      open(fn, "r")
      return 1
    except IOError:
      print "Error: File does not appear to exist."
      return 0

result = FileCheck("testfile")
print result
3 голосов
/ 05 декабря 2011

Это скорее всего потому, что вы хотите открыть файл в режиме чтения. Замените "U" на "r".

Конечно, вы также можете использовать os.path.isfile('filepath').

2 голосов
/ 30 марта 2016

Я думаю, os.path.isfile() лучше, если вы просто хотите "проверить", существует ли файл, поскольку вам фактически не нужно открывать файл. В любом случае, после открытия рекомендуется закрыть файл, и примеры выше не включают это.

...