Python调用Linux pvs命令提示:File descriptor () leaked on pvs invocation

本文介绍了一个Python脚本在调用Linux命令pvs时出现文件描述符泄露错误的问题,详细展示了从使用os.popen到改用subprocess模块的解决方案,有效避免了文件描述符泄露。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python调用linux 命令pvs时提示:File descriptor 3 () leaked on pvs invocation,代码及具体情况如下:

def execCmd(cmd):
	r = os.popen(cmd)
	text = r.read()
	r.close()
	return text

pvs_tmp=open(PVS_TMP,'w')
pvs_result=execCmd("pvs")
pvs_tmp.write(pvs_result)
……

报错:

File descriptor 4 (/patrol/scripts/getlun/20180925-095326tmp.txt) leaked on pvs invocation. Parent PID 72193: python

处理方式:

将命令调用方式改为:subprocess

process = subprocess.Popen("pvs", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
pvs_result = process.stdout.read().decode('utf-8')

更改后,提示信息消失,具体原因正在分析,后续更新……

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值