我是Python的新手。我想知道从文本文件中的字段提取数据的最佳方法是什么?
我的文本文件保存了网络信息。看起来像这样:
Name: Machine_1 Status: On IP:10.0.0.1
Name: Machine_2 Status: On IP:10.0.0.2
Network_name: Private Router_name: router1 Router_ID=3568
Subnet: Tenant A
该文件不是很结构化。由于行的非均一性,它甚至不能表示为CSV文件,即它们都不具有相同的列标识符。
我想做的就是能够获取我想要的任何字段的值,例如Router_ID。
请帮助我找到解决方案。
谢谢。
您可以使用正则表达式浏览文件。您必须为要提取的每个字段定义一个正则表达式。例如:
import re
data = """Name: Machine_1 Status: On IP:10.0.0.1
Name: Machine_2 Status: On IP:10.0.0.2
Network_name: Private Router_name: router1 Router_ID=3568
Subnet: Tenant A"""
for line in data.split('\n'):
ip = re.match('.*IP:(\d+.\d+.\d+.\d+)', line)
rname = re.match('.*Router_name: (\w+)', line)
if ip and ip.lastindex > 0:
print(ip.group(1))
if rname and rname.lastindex > 0:
print(rname.group(1))
输出:
10.0.0.1
10.0.0.2
router1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句