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



我有一个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",是否有其他部分可以分组?

或者更简单一点:

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

您可以切片并使用上下文管理器,这样您的文件处理程序在边缘情况下就不会孤立。

with open('test.txt', 'r', encoding='utf8') as f
for line in f:
print((' '.join(line.split()[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

最新更新