Как напечатать 1-е слово каждой строки в текстовом файле? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь написать код, который читает текстовый файл и печатает 1-ю букву в каждой строке. Мой текущий код:

f=open("testfile1.txt","r")

for line in f:
    words=line.split()
    print(words[0])

При этом строки должны быть разбиты на отдельные слова, но когда я запускаю код, я получаю сообщение об ошибке, в котором указывается, что индекс списка находится вне диапазона. Я пробовал решения похожих вопросов, которые были у людей по той же теме, но когда я использую один и тот же код, я получаю эту ошибку. Может кто-нибудь объяснить, почему это происходит, и как я могу это исправить? Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 июля 2019

Звучит так, как будто есть пустые строки, поэтому ниже должно работать:

f=open("testfile1.txt","r")

for line in f:
    words=line.split()
    if words:
        print(words[0])
f.close()

Еще лучше, with open:

with open("testfile1.txt", "r") as f:
    for line in f:
        words = line.split()
        if words:
            print(words[0])
1 голос
/ 10 июля 2019

Ошибки звучат так, как будто в файле есть пустые строки.Вам просто нужно их обнаружить. Также в python есть удобный трюк для перебора строк файла!Это можно сделать следующим образом.

# in python the default file mode is "r", or read.
with open("testfile1.txt") as r:
    for line in r:
        # detect empty lines with python's default boolean values
        if line:
            print(line.split()[0])
...