python之ping命令学习,不出现cmd窗口

用户输入一个此类地址,将通的IP地址输出到文档中

遇到的知识盲点:

1、文档的输入输出

addr代表文档的绝对地址(含名称,例如c:\1.txt),'w' 代表新的内容覆盖原文档内容,此处参数可替换为‘a’,代表追加模式

data = open(addr,'w',encoding='utf-8')
print('测试地址段为'+ip+'1-'+ip+'255,以下地址可用:',file=data)

2、使用os.system()时总出现cmd窗口替换方法:

①使用os.popen

os.popen输出的内容为一个文档,里面记录了在cmd窗口执行时显示的内容,不反回状态码,此时要判断是否ping通,需要使用read()方法读取文档内容

result=os.popen('ping -n 1 '+ip1,'r')
shuchu=result.read()
result.close
#print(shuchu)
if not shuchu.count('请求超时'):
    data = open(addr,'a',encoding='utf-8')
			print(ip1,file=data)
			data.close()

②使用subprocess模块

subprocess模块是在python3.5之后的新函数,用来替换os,command(只有Linux上能使用)模块的部分功能。

subprocess.call()返回状态码。ping命令是,通的情况下返回int(0),否则返回int(1).

具体参考:https://www.cnblogs.com/yyds/p/7288916.html

                  https://blog.csdn.net/mouday/article/details/86367256

result=subprocess.call('ping -n 1 '+ip1,shell=True)
#print(type(result))
if result==0:
    data = open(addr,'a',encoding='utf-8')
	print(ip1,file=data)
	data.close()

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值