提取python中txt文件的第二列的更好方法?

时间:2018-11-19 02:11:43

标签: python python-3.x file-io

我有一个看起来像这样的txt文件。数字部分和句子部分之间用一个制表符分隔。

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 :(得分:2)

或更简单:

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

答案 1 :(得分:1)

您可以切片并使用上下文管理器,以便在极端情况下不会孤立您的文件处理程序。

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

答案 2 :(得分:1)

假设每一行总是有第二部分:

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