Py学习  »  Python

从python的第二行读取文本文件内容

Python • 4 年前 • 629 次点击  

我编写了一个Python代码,它执行BASH命令并将输出保存在TXT文件中,现在我想总是读取从第2行实际包含细节的TXT文件,如果输出存在,则打印TRUE,并将邮件发送给用户。

寻找一个进一步的解决方案,我如何读取文件输出OutPut.txt的具体第二行输出,并打印true,如果存在行发送邮件给用户,否则再见。

我对这种方法很陌生,请帮忙指导。 蒂亚。

import subprocess
p = subprocess.Popen("bash command > output.txt", stdout=subprocess.PIPE, shell=True)
(output, err) = p.communicate()
p_status = p.wait()
print "command exit status/return code: ", p_status

上面的代码以下面的格式打印TXT文件中的输出

PID  PPID %CPU     ELAPSED COMMAND
3435 1     0       4-05:20:09 

要求:从 "3435 1 0 4-05:20:09 " 这行和打印作为行存在,并发送邮件给用户。如果之后没有输出 "PID PPID %CPU ELAPSED COMMAND" 它不应该发送邮件

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47495
 
629 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Yakov Dan
Reply   •   1 楼
Yakov Dan    5 年前

您可以从如下文件创建行列表:

with open('output.txt') as input_file:
    lines_list = input_file.readlines()    
if len(lines_list) > 1:
    lines_list=lines_list[1:] # drop the first line
    send_mail()
else:
    print ("else condition")

打开要读取的文件时使用 "r" 然后你建立一个行列表。如果列表长于1,则通过删除第一行来构建新列表

Amit Nanaware
Reply   •   2 楼
Amit Nanaware    5 年前

你可以这样使用它:

lines = output.split('\n')

现在您可以通过索引访问行,例如。 lines[1] lines[1:] 是的。

你需要移除 > output.txt 从命令中获取输出 output 变量而不是output.txt文件