用户输入一个此类地址,将通的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()