Python脚本读取TXT并创建新的
我有这个脚本用于创建“acl”,将服务器的所有IP添加到squid配置Python脚本读取TXT并创建新的,python,python-2.7,Python,Python 2.7,我有这个脚本用于创建“acl”,将服务器的所有IP添加到squid配置 file = open("ip.txt", "r") ip_list = [line for line in file] for acl, tcp in zip(ip_list[::2], ip_list[1::2]): print "acl ip" + str(ip_list.index(acl) + 1) + " myip " + acl.strip() print "tcp_outgoing_add
file = open("ip.txt", "r")
ip_list = [line for line in file]
for acl, tcp in zip(ip_list[::2], ip_list[1::2]):
print "acl ip" + str(ip_list.index(acl) + 1) + " myip " + acl.strip()
print "tcp_outgoing_address " + tcp.strip() + " ip" + str(ip_list.index(acl) + 1)
我的问题是,当脚本从IP.txt读取IP时,我需要输入2次相同的IP,因为我在最终粘贴时需要输入2次相同的IP
我的朋友告诉我创建双循环,但我不知道怎么做
ip.txt看起来像这样
1.1.1.1
2.2.2.2
3.3.3.3
最后的粘贴应该是这样的
acl ip1 myip 1.1.1.1
tcp_outgoing_address 1.1.1.1 ip1
acl ip2 myip 2.2.2.2
tcp_outgoing_address 2.2.2.2 ip2
acl ip3 myip 3.3.3.3
tcp_outgoing_address 3.3.3.3 ip3
acl ip4 myip 4.4.4.4
tcp_outgoing_address 4.4.4.4 ip4
有一种更简单的方法可以做到这一点,而不需要
zip()
和index()
的开销:
甚至更好(我认为):
并且输出将与您请求的相同:
acl ip1 myip 1.1.1.1tcp_传出_地址1.1.1.1 ip1
acl ip2 myip 2.2.2.2
tcp_传出_地址2.2.2.2 ip2
acl ip3 myip 3.3.3.3
tcp_传出_地址3.3.3.3 ip3
我还通过用户输入并保存到TXT来实现这一点
file1 = open("iplist.txt","w")
ip = raw_input("Enter IP list:").split(" ")
tpl = """acl ip{index} myip {ip}
tcp_outgoing_address {ip} ip{index}
"""
for index, line in enumerate(ip):
file1.write(tpl.format(index=index, ip=line.strip()))
谢谢你的贡献你的剧本很棒
file = open("ip.txt", "r")
tpl = """acl ip{index} myip {ip}
tcp_outgoing_address {ip} ip {index}"""
for index, line in enumerate(file):
print(tpl.format(index=index, ip=line.strip()))
file1 = open("iplist.txt","w")
ip = raw_input("Enter IP list:").split(" ")
tpl = """acl ip{index} myip {ip}
tcp_outgoing_address {ip} ip{index}
"""
for index, line in enumerate(ip):
file1.write(tpl.format(index=index, ip=line.strip()))