【发布时间】:2019-04-23 20:15:07
【问题描述】:
我是 Python 新手,但我无法得到这个。我有一个列表,我想从那里获取输入并将其写入文件中。
p = ['Eth1/1', 'Eth1/5','Eth2/1', 'Eth2/4','Eth101/1/1', 'Eth101/1/2', 'Eth101/1/3','Eth102/1/1', 'Eth102/1/2', 'Eth102/1/3','Eth103/1/1', 'Eth103/1/2', 'Eth103/1/3','Eth103/1/4','Eth104/1/1', 'Eth104/1/2', 'Eth104/1/3','Eth104/1/4']
我正在尝试什么:
with open("abc1.txt", "w+") as fw1, open("abc2.txt", "w+") as fw2:
for i in p:
if len(i.partition("/")[0]) == 4:
fw1.write('int ' + i + '\n mode\n')
else:
i = 0
while i < len(p):
start = p[i].split('/')
if (start[0] == 'Eth101'):
i += 3
key = start[0]
i += 1
while i < len(p) and p[i].split('/')[0] == key:
i += 1
end = p[i-1].split('/')
fw2.write('confi ' + start[0] + '/' + start[1] + '-' + end[1] + '\n mode\n')
我在寻找什么:
abc1.txt 应该有
int Eth1/1
mode
int Eth1/5
mode
int Eth2/1
mode
int Eth 2/4
mode
abc2.txt 应该有:
int Eth101/1/1-3
mode
int Eth102/1/1-3
mode
int Eth103/1/1-4
mode
int Eth104/1/1-4
mode
所以任何在“/”之前有 1 位数字的 Eth(例如:Eth1/1 或 Eth2/2 ) 应位于 abc1.txt 文件中。
“/”前有 3 位数字的任何 Eth(例如:Eth101/1/1 或 Eth 102/1/1 ) 应该在另一个文件中,即 abc2.txt 和 .As 这些文件中 范围,需要像Eth101/1/1-3,Eth102/1/1-3等这样写
有什么想法吗?
【问题讨论】:
-
您只打开了一个文件用于写入。您是否尝试过以写入模式打开两个文件?
-
@colidyre 我更新我的问题
-
@colidyre 嘿,我用我正在尝试的内容更新了我的问题..我没有得到想要的结果..知道我需要怎么做吗?
-
@colidyre: 我收到 def get_network_ranges(networks: list:) 的错误“无效语法”
-
此评论最好放在答案中。但是:您有一个不支持类型提示的较旧的 python 版本。只需删除
def get_network_ranges(networks):的类型提示啊,抱歉监督了您的 Python 版本。 2.6 :/
标签: list python-2.6