打印具有给定值的行

2024-10-02 08:22:39 发布

您现在位置: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,但我不确定该放什么?你知道吗

抱歉问了一个很基本的问题!我才刚开始努力掌握窍门呢!你知道吗


Tags: 代码intxtfordataifnpline
3条回答
with open('SelectValueTest.txt', 'rb') as f:
    for line in f:
        if line.strip().endswith('1'):
            print line

将打印出以1结尾的所有行。您需要strip()来删除行末尾的换行符等。这将适用于你给我们看的数据。但是,如果在行尾有两个或更多数字的值,则需要使用Rohit方法。你知道吗

迈克

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

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

所以,正在发生的是,你正在打印任何一行,其中包含一个1,在任何地方。你知道吗

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

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

相关问题 更多 >

    热门问题