1
Почему это не открытие файла, который я ввел в функцию? Он открывается, когда я подключаю имя файла непосредственно к основной программе, но не тогда, когда я пытаюсь передать его через функцию. Это дает мне FileNotFoundError
.Файл не открывается при передаче из функции
def get_valid_filename(prompt):
'''Use prompt (a string) to ask the user to type the name of a file. If
the file does not exist, keep asking until they give a valid filename.
Return the name of that file.'''
filename = input(prompt)
if os.path.isfile(filename) == False:
print ("That file does not exist.")
filename = input(prompt)
return filename
if __name__ == '__main__':
prompt = 'enter the name of the file with unknown author:'
mystery_filename = get_valid_filename(prompt)
# readlines gives us the file as a list of strings each ending in '\n'
text = open(mystery_filename, 'r').read()
print (text)
вы, вероятно, имел в виду: 'пока не ISFILE (путь): путь = вход ("? Путь")' 'Примечание while' вместо' if' , Еще лучше, просто используйте 'return open (path)' внутри try/except (также в цикле), чтобы возвращать объект файла напрямую. – jfs
Я не могу открыть файл внутри функции. Он должен оставаться в основной программе. – Nick
, пожалуйста, исправьте отступ, питон нечитабелен без соответствующего отступа. –