首页 > 解决方案 > 如何使用python从文本文件中获取特定值

问题描述

我正在从给定的文本文件中读取地址、网络掩码、网关和 dnsname-server 值,并将它们分别存储到 var1、var2、var3 和 var4 中。在我的代码中,我得到的是变量而不是它们的值。如何从给定的文本文件下面提取地址值。我是 python 中文件编辑的新手。感谢所有帮助。我已经阅读了此类文本编辑问题和答案,但它们在我的情况下对我没有帮助。

def read_values():
    with open('text.txt', 'r') as f:
        lines = f.read().split()
        print('List:',lines)
        for i, l in enumerate(lines):
            if l.startswith('address'):
                var1 = l
                print('address:', var1)
            if l.startswith('netmask'):
                var2 = l
                print('netmask:', var2)
            if l.startswith('gateway'):
                var3 = l
                print('gateway:', var3)
            if l.startswith('dns'):
                var4 = l
                print('dns:', var4)

read_values()

这是 text.txt 文件:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
   address 125.222.2222
   netmask 455.225.222.22
   gateway 236.256.222.22
   dns-nameserver 123.256.223.22

标签: python

解决方案


这应该会有所帮助。

with open(filename, 'r') as f:
    for line in f:                        #Iterate each line
        val = line.strip()                #Strip leading and trailing space. 
        if val.startswith('address'):     #Check for value
            var1 = val
            print('address:', var1)
        if val.startswith('netmask'):
            var2 = val
            print('netmask:', var2)
        if val.startswith('gateway'):
            var3 = val
            print('gateway:', var3)
        if val.startswith('dns'):
            var4 = val
            print('dns:', var4)

输出:

('address:', 'address 125.222.2222')
('netmask:', 'netmask 455.225.222.22')
('gateway:', 'gateway 236.256.222.22')
('dns:', 'dns-nameserver 123.256.223.22')

推荐阅读