python 读取文本并赋值

a.txt 内容:
telnet_ip=(189.6.68.100,189.6.68.103,189.6.68.105,189.6.68.109,189.6.68.112,189.6.68.123) user_name=root
请问,使用python 如何解析该txt,并将telnet_ip 循环赋值给A,user_name赋值给B

这个的主要思路是对于字符串进行分割,然后循环读取。

a.txt内容为

telnet_ip=(189.6.68.100,189.6.68.103,189.6.68.105,189.6.68.109,189.6.68.112,189.6.68.123)
user_name=root

代码如下:

def get_ip(val):  #从(189.6.68.100,189.6.68.103,189.6.68.105,189.6.68.109,189.6.68.112,189.6.68.123)中获取IP,返回一个ip数组
    val = val.replace("(", "")
    val = val.replace(")", "")
    ips = val.split(",")
    return ips
def main():
    f = open ("a.txt","r")
    for line in f:
        line = line.strip()
        lines = line.split("=")
        key = lines[0]
        if key.strip()=="user_name":
            B = lines[1] #获取user_name
        elif key.strip()=="telnet_ip":  
            val = lines[1]
            A = get_ip(val) #获取telnet_ip
    print "user_name is %s " % B
    print "telnet_ip is %s" % A
          
if __name__=="__main__":
    main()

追问

根据您的方法的出来的回显为:
telnet_ip is ['189.6.68.100', '189.6.68.103', '189.6.68.105', '189.6.68.109', '189.6.68.112', '189.6.68.123']

请问, 怎么样取出[ 及 ' ?

追答

telnet_ip 是一个数组。直接print 就会显示[]。里面的ip是字符串。自然会用''包裹。如果只想要打印其中的字符串。可以修改为

def get_ip(val):
    val = val.replace("(", "")
    val = val.replace(")", "")
    ips = val.split(",")
    return ips
def main():
    f = open ("a.txt","r")
    for line in f:
        line = line.strip()
        lines = line.split("=")
        key = lines[0]
        if key.strip()=="user_name":
            B = lines[1]
        elif key.strip()=="telnet_ip":  
            val = lines[1]
            A = get_ip(val)
    print "user_name is %s " % B
    for ip in A:
        print ip
          
if __name__=="__main__":
    main()

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-14

你好,请详细说一下你的需求,python读取文本是很简单的:

# -*- coding: cp936 -*-
txtpath=r"a.txt"
fp=open(txtpath)
for line in fp.readlines():
    line=line.replace("\n","")
    #自己根据需要设置
    if line[0:9]=="telnet_ip":
        print "A",line
    else:
        print "B",line

fp.close()

不明白的地方请追问,采纳哦!

本回答被网友采纳
第2个回答  2014-04-08
将文本中的内容读到元组telnet_ip中,然后循环:
for ip in telnet_ip:
A = ip
第3个回答  2018-05-14
《逍遥僧》:幸为福田枷下僧,乾坤赢得一闲人。有缘即来无缘去,胜过清风送白云。
相似回答