import subprocess
import re
def sub_deal(filename):
'''
.表示匹配任意字符
*表示匹配0次或多次
+表示匹配1次或多次表达式
\d表示匹配数字
:param filename: 获取的数据存入文件 然后读取
:return:
'''
a=subprocess.Popen('ipconfig/all',stdout=subprocess.PIPE,stdin=subprocess.PIPE,shell=True)
b=str(a.stdout.read(),encoding='gbk') #编码gbk
# print(b)
with open(filename,'w',encoding='utf-8')as f: #编码utf8
f.write(b)
with open(filename,'r',encoding='utf-8')as f:#编码utf8
for i in f.readlines():
i=i.strip()
if 'IPv4' in i:
s=re.findall(r'.*IPv4 地址.*: (\d+.\d+.\d+.\d+).*',i)
print(s)
else:
pass
if __name__=='__main__':
sub_deal('b.txt')
不写入文件,直接获取数据
import subprocess
import re
def sub_deal():
'''
.表示匹配任意字符
*表示匹配0次或多次
+表示匹配1次或多次表达式
\d表示匹配数字
:return:
'''
a = subprocess.Popen('ipconfig/all', stdout=subprocess.PIPE, stdin=subprocess.PIPE,shell=True)
b = a.stdout.read()
s = re.findall(r'.*IPv4 地址.*: (\d+.\d+.\d+.\d+).*', str(b,'gbk'))
print(s)
if __name__ == '__main__':
sub_deal()