打印具有给定值的行

时间:2012-11-21 11:59:03

标签: python

我正在尝试在python中运行一些简单的代码来读取文本文件,并在最后一列中仅打印具有特定值的行。

这是文本文件:

234 324 4
124 35 5
13 434 7
34 465 1
41 46 2 
25 62 2

我尝试的代码是

data = np.loadtxt('SelectValueTest.txt')

line = range (0,5)
for line in data:
    for n in data[:,2]:
        if n ==1:
            print line 

我知道我需要更改print line位,因为这只是打印每一行,如果其中任何一行包含值1,但我不知道该放什么?

对不起真正基本的问题!我刚刚开始并努力掌握它!

3 个答案:

答案 0 :(得分:3)

只需在空格上划分每一行,并检查所获得的列表的最后一个元素是否等于所需的值: -

with open('SelectValueTest.txt', 'rb') as data:
    for line in data:
        if line.strip().split(" ")[-1] == '1':
             print line 

答案 1 :(得分:2)

with open('SelectValueTest.txt', 'rb') as f:
    for line in f:
        if line.strip().endswith('1'):
            print line

这将打印出以1结尾的所有行。您需要strip()来删除行末尾的换行符等。这将与您向我们展示的数据一起使用。但是,如果您在行尾有两位或更多位数的值,那么您需要使用Rohit方法。

麦克

答案 2 :(得分:0)

所以,正在发生的事情是你在任何地方打印任何包含1的行。

更好的解决方案是使用cvs阅读器阅读,如下所示:

with open(file, 'rb') as csvfile:
    data= csv.reader(csvfile, delimiter=' ')
    for line in data:
        if line[-1] ==1:
            print line