1

我正在尝试在 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位,因为这只是打印每一行(如果其中任何一行包含到 value 1),但我不知道该放什么?

对不起,这个非常基本的问题!我刚刚开始并努力掌握它!

4

3 回答 3

3

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

with open('SelectValueTest.txt', 'rb') as data:
    for line in data:
        if line.strip().split(" ")[-1] == '1':
             print line 
于 2012-11-21T12:07:00.150 回答
2
with open('SelectValueTest.txt', 'rb') as f:
    for line in f:
        if line.strip().endswith('1'):
            print line

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

麦克风

于 2012-11-21T12:07:06.397 回答
0

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

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

with open(file, 'rb') as csvfile:
    data= csv.reader(csvfile, delimiter=' ')
    for line in data:
        if line[-1] ==1:
            print line 
于 2012-11-21T12:05:16.570 回答