2016-06-16 2 views
1

У меня есть функция, которая берет исходный файл, содержащий время (файл csv), читает его, затем сортирует строки по порядку и записывает их в файл назначения. Однако, если исходный файл csv не существует, мне нужно поднять FileNotFoundError. Я поднял исключение, прежде чем, например, если параметр не было целое число, я должен был поднять ChangeParameterError с помощью:Raising FileNotFoundError

class ChangeParameterError(Exception): 
    pass 

, а затем повышения, что в моей функции.

Для моей проблемы, моя функция выглядит следующим образом:

def times(src,dst): 
    s = open(src,'r') 
    d = open(dst,'w') 
    lines = s.readlines() 
    s.close() 
    lines.sort() 
    for i in lines: 
     print((str(i).strip()), file = d) 
    d.close() 

Любая помощь приветствуется!

+0

Что вы пытаетесь до сих пор? Что не сработало? –

+0

В python3, если вы попытаетесь открыть файл, который не существует, вызов 'open' будет автоматически вызывать' FileNotFoundError' для вас. В python2.7 он генерирует 'IOError', но идея такая же. Какую версию python вы используете, и вам нужна первая ошибка? –

+0

У меня есть python 3.5.1, и вопрос конкретно указывает на повышение этой ошибки, но я понимаю, что даже если я не делаю никаких исключений, эта ошибка появляется в любом случае –

ответ

2

Если указанный файл не найден, FileNotFoundError будет автоматически поднят при вызове open при попытке открыть файл.

1

Исключением автоматически поднят на python. Но вам может понадобиться, чтобы обернуть ваш open с try-except к уловом за исключением их, не нарушая ваш код:

try: 
    s = open(src,'r') 
except FileNotFoundError: 
    print('file not found')