从.txt文件中的特定字段中提取值

时间:2018-03-31 03:26:46

标签: python split sys

我尝试从文件中提取指定字段的值。

例如,文件thing.txt具有以下内容

苹果汁熊盒

蜜蜂蛇水空气

速度高度长度重量

当我输入:python program.py 4 thing.txt

输出应为

  

     

空气

     

重量

import sys 
WordInd = sys.argv[1]
WordList=[]
NList=[]

with open(sys.argv[2])as my_file:
    for line in my_file:
        WordList=line.split(' ',int(WordInd))
        NList.append(WordList[int(WordInd)-1])

i = 0
while i<len(NList):
    print(NList[i])
    i+=1

该程序可以正常使用python program.py 1 thing.txt到python program.py 4 thing.txt

然而,当我试图提取每一行的最后一个单词时,每个输出之间有额外的空格。例如:

(额外空间)

空气

(额外空间)

重量(额外空间)

(额外空间)

2 个答案:

答案 0 :(得分:0)

试试这个:

import sys 
WordInd = sys.argv[1]
WordList=[]
NList=[]

with open(sys.argv[2])as my_file:
    for line in my_file:
        line=line[:-1] #to remove "\n" from end of the line 
        WordList=line.split(' ',int(WordInd))
        NList.append(WordList[int(WordInd)-1])

i = 0
while i<len(NList):
    print(NList[i])
    i+=1

答案 1 :(得分:0)

如果您只想要每行的最后一个单词,您也可以尝试:

print([line.strip().split()[-1] for line in open('file.txt','r') if line!='\n'])

输出:

['box', 'air', 'weight']