社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python • 5 年前 • 1393 次点击  

我编写了一个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
 
1393 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Yakov Dan
Reply   •   1 楼
Yakov Dan    6 年前

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

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    6 年前

你可以这样使用它:

lines = output.split('\n')

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

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