2024-09-25 00:33:38 发布
网友
下面是我在Python中使用subprocess模块的nslookup结果。在
subprocess
b'Server: server.internal\r\nAddress: 192.168.0.2\r\n\r\nName: www.google.com\r\nAddresses: 2404:6800:4007:800::2004\r\n\t 216.58.197.68\r\n\r\n'
有人能帮我把结果格式化如下。在
您可以使用Python的unicode_escape来帮助转换它。然后将结果分成几行,并按如下方式重新组装:
unicode_escape
nslookup = b'Server: server.internal\r\nAddress: 192.168.0.2\r\n\r\nName: www.google.com\r\nAddresses: 2404:6800:4007:800::2004\r\n\t216.58.197.68\r\n\r\n' lines = [line.strip('\t').replace(' ', ' ') for line in nslookup.decode('unicode_escape').splitlines()] print('\n'.join([lines[0], lines[3], lines[1], '{} , {}'.format(lines[4], lines[5])]))
给你:
Address:可由DNS:替换为.replace()
Address:
DNS:
.replace()
可以通过将nslookup结果的行解析到字典中,然后使用它来格式化输出。在
nslookup = (b'Server: server.internal\r\nAddress: 192.168.0.2\r\n\r\n' b'Name: www.google.com\r\nAddresses: 2404:6800:4007:800::2004\r\n' b'\t216.58.197.68\r\n\r\n') info = {} for line in nslookup.decode().splitlines(): tokens = line.split() if len(tokens) == 2: if tokens[0] == 'Addresses:': info.setdefault('Addresses', []).append(tokens[1]) # Without ":" else: info[tokens[0].rstrip(':')] = tokens[1] elif len(tokens) == 1: info['Addresses'].append(tokens[0]) info['Addresses'] = ', '.join(info['Addresses']) # Format and convert to string. print('''\ Server: {Server} Name: {Name} DNS: {Address} Addresses: {Addresses}'''.format(**info))
输出:
您可以使用Python的
unicode_escape
来帮助转换它。然后将结果分成几行,并按如下方式重新组装:给你:
^{pr2}$Address:
可由DNS:
替换为.replace()
可以通过将nslookup结果的行解析到字典中,然后使用它来格式化输出。在
输出:
^{pr2}$相关问题 更多 >
编程相关推荐