我正在尝试在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
,但我不知道该放什么?
对不起真正基本的问题!我刚刚开始并努力掌握它!
答案 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