Лучший способ извлечь только 2-й столбец текстового файла в Python? - PullRequest
0 голосов
/ 19 ноября 2018

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

1234  I'll give 5.
1334  Surprisingly well made.

Я пытаюсь извлечь только второй столбец (часть предложения) и поместить его в переменную.Я мог бы сделать это, используя .split() и .join(), как показано ниже

f = open('test.txt', 'r', encoding='utf8')
for line in f.readlines():
    temp = line.split()
    del temp[0]
    line = ' '.join(temp)
    print(line)

Просто подумал, что мог бы быть лучший способ сделать это без разделения и соединения, что выглядит бессмысленно ... какесть ли способ сгруппировать оставшуюся часть, как только она нажмет '\ tab'?

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Или немного проще:

with open('test.txt', 'r', encoding='utf8') as f:
    print('\n'.join(line.split()[1] for line in f))
0 голосов
/ 19 ноября 2018

Предполагая, что каждая строка всегда имеет вторую часть:

with open('test.txt', 'r', encoding='utf8') as f:
    for line in f:
        print(line.split('\t', 1)[1])    

Если это не так (пропустите это):

with open('test.txt', 'r', encoding='utf8') as f:
    for line in f:
        try:
            print(line.split('\t', 1)[1])
        except IndexError:
            pass
0 голосов
/ 19 ноября 2018

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

with open('test.txt', 'r', encoding='utf8') as f
    for line in f:
        print((' '.join(line.split()[1:]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...