Как предложить пользователю открыть файл в Python - PullRequest
0 голосов
/ 21 октября 2011

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

f = raw_input("\n Hello, user. "
    "\n \n Please type in the path to your file and press 'Enter': ")
    file = open('f', 'r')

В нем говорится, что f не определено или такого не существует ... даже если я его определяю? Использование 'r' для чтения файла.

Ответы [ 4 ]

6 голосов
/ 21 октября 2011

Вы не должны иметь f в кавычках:

myfile = open(f, 'r')

'f' означает строку, состоящую из буквы f, поэтому ваш код искал файл с именем f и не нашелЭто.Вместо этого используйте f, что означает значение переменной f.

Кроме того, не вызывайте переменную для хранения вашего файла file.Это легко сделать, но постарайтесь избежать этого.Уже существует встроенный класс с именем file, и лучше не скрывать какие-либо встроенные классы или функции с собственными именами.Это потому, что другой код, который вы увидите, будет ожидать, что file будет представлять класс файла, а не вашу переменную.

Один из способов проверить, используется ли термин, - использовать функцию help:

>>> help(file)

Help on class file in module __builtin__:

class file(object)
 |  file(name[, mode[, buffering]]) -> file object
 |  
 |  Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),
 |  writing or appending.  The file will be created if it doesn't exist

И поскольку в Python значение индексации является существенным, я бы порекомендовал получить правильные отступы при публикации кода здесь.

2 голосов
/ 21 октября 2011

Вы пытаетесь открыть строку 'f'. Попробуйте это:

file = open(f, 'r')
1 голос
/ 21 октября 2011

Не помещайте f в кавычки.f - это переменная, которая содержит строку, но при открытии вы используете строковое значение 'f'.

file = open(f, 'r')
0 голосов
/ 21 октября 2011

open () возвращает файловый объект и чаще всего используется с двумя аргументами: open (имя файла, режим).

>>> f = open('/tmp/workfile', 'w')

Для получения дополнительной информации о файлах U можно Проверить эту ссылку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...