Почему чтение файла .txt с Python приводит к пустой строке в консоли? - PullRequest
0 голосов
/ 15 января 2020

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

Кто-нибудь знает, что может быть выключено?

employee_file = open('employees.txt', 'r')

print(employee_file.readline())

employee_file.close()

Ответы [ 4 ]

3 голосов
/ 15 января 2020

Попробуйте так:

with open ('employees.txt') as file :
    for line in file :
        print (line)
0 голосов
/ 15 января 2020

Используйте seek() функцию объекта файла.

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

обновите ваш код:

employee_file = open('employees.txt', 'r')
employee_file.seek(0)  # Sets cursor in your file at absolute position (At beginning)

print(employee_file.readline())

Это должно работать.

0 голосов
/ 15 января 2020

Возможно, что в том же сеансе консоли вы уже открыли и прочитали файл , но забыли закрыть его . Затем вы повторно запустили тот же readline или readlines(), который вернул бы пустой, потому что указатель файла уже находится в конце файла.

$ cat employees.txt
Jim-Sales
111
222

$ python3.7
Python 3.7.2 (default, Mar  8 2019, 19:01:13) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> employee_file = open('employees.txt', 'r')
>>> print(employee_file.readline())
Jim-Sales

>>> print(employee_file.readlines())
['111\n', '222\n']
>>> 
>>> 
>>> 
>>> print(employee_file.readline())

>>> print(employee_file.readlines())
[]

Вот почему рекомендуется всегда оберните это в with заявление :

>>> with open("employees.txt", "r") as employee_file:
...      print(employee_file.readlines())
... 
['Jim-Sales\n', '111\n', '222\n']
>>> with open("employees.txt", "r") as employee_file:
...      print(employee_file.readlines())
... 
['Jim-Sales\n', '111\n', '222\n']
0 голосов
/ 15 января 2020

Прежде всего, убедитесь, что вы работаете по тому же пути, где находится файл. Используйте это: print (os.getcwd ()) Во-вторых, убедитесь, что файл не пустой, и сохраните его. Код третьего использования, написанный @bashBedlam, и он должен работать.

Надеюсь, это поможет вам.

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