我试图在一行中编写循环,第一个代码可以工作,但第二个失败
第一个
# -*- coding: UTF-8 -*-
import os
import re
def getIp():
os.system('ipconfig /all > myip.txt')
ipv4 =[]
with open('myip.txt', 'r') as myip:
for line in myip:
line = line.decode('gbk')
if re.match(u' IPv4', line):
ipv4.append(line)
return ipv4
ip = getIp()
print ip[0]
秒
# -*- coding: UTF-8 -*-
import os
import re
def getIp():
os.system('ipconfig /all > myip.txt')
ipv4 =[]
with open('myip.txt', 'r') as myip:
ipv4 = [line for line in myip if re.match((u'IPv4').encode('gbk'), line) ]# failed, return empty ipv4 list
# ipv4 = [line.encode('gbk') for line in myip if re.match(u'IPv4', line.encode('gbk')) ]#failed, return empty ipv4 list
# ipv4 = [line for line.encode('gbk') in myip if re.match(u'IPv4', line) ]# SyntaxError: can't assign to function call
return ipv4
ip = getIp()
print ip[0]
我想,命令行是gbk,所以我应该用gbk解码。它首先返回一个三长度的列表,但第二个返回空(失败)
你能帮我做第二件工作吗
谢谢
在中,首先对行进行解码,然后尝试在其中找到匹配项
在秒中对匹配的模式进行编码
也许应该是
相关问题 更多 >
编程相关推荐