[英]print last line from the variable output in python
我正在寻找从line
变量产生的最后一行
bash-4.1$ cat file1_dup.py
#!/usr/bin/python
with open("file1.txt") as f:
lines = f.readlines()
for line in lines:
if "!" in line:
line = line.split()[-1].strip()
print line
我得到的输出如下。
-122.1058
-123.1050
-125.10584323
我想要打印的结果是
-125.10584323
而且,我从一些咯咯地笑声中得到了提示,并获得了期望的输出,但这一点对我来说似乎有点复杂。
bash-4.1$ cat file2_dup.py
#!/usr/bin/python
def file_read_from_tail(fname,n):
with open(fname) as f:
f=f.read().splitlines()
lines=[x for x in f]
for i in range(len(lines)-n,len(lines)):
line = lines[i].split()[-1]
#line = line.split()[-1]
print line
file_read_from_tail('file1.txt',1)
希望以此为继。
bash-4.1$ ./file2_dup.py
-125.10584323
PS:我只是出于以下目的而借用了这个问题: 如何使用python读取特定行并在该行中打印特定位置
您可以像这样测试新行是否小于之前的行
#!/usr/bin/python
res_line = 0
with open("file1.txt") as f:
lines = f.readlines()
for line in lines:
if "!" in line:
line = float(line.split()[-1].strip())
if res_line > line:
res_line = line
print res_line
编辑:
您可以使用enumerate()
获取循环中索引的行:
with open("file1.txt", "rt") as f:
lines = f.readlines()
for line, content in enumerate(lines):
# apply your logic to line and/or content here
# by adding ifs to select the lines you want...
print line, content.strip() # do your thing
将会输出(只是为了说明,因为我没有在上面的代码中指定任何条件):
0 -122.1058
1 -123.1050
2 -125.10584323
3
或者通过使用以下代码在listcomp中选择带有条件的特定行:
with open("file1.txt", "rt") as f:
lines = f.readlines()
result = [ content.strip() for line, content in enumerate(lines)
if line == len(lines) - 2] # creates a list with
# only the last line
print result[0]
将输出:
-125.10584323
请尝试以下操作:
print [line.split()[-1].strip() for line in lines if '!' in line][-1]
我看到了一种更好的方法,即创建一个空列表并附加条件中的值,然后选择您所选择的索引并列出输出,从某种意义上讲,它可以用于您所感兴趣的任何行,这是一个好方法需要选择。
让我们假设我要倒数第二行,那么可以将该值放到打印部分print(lst[-2])
,它将打印第二行的最后一个索引。
#!/usr/bin/python
file = open('file1.txt', 'r')
lst = list()
for line in file:
if "!" in line:
x= line.split()
lst.append(x[-1])
print(lst[-1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.