我盯着一个文件,我不知道该怎么做。文件(data.txt),包含如下的字典列表:
{'name': 'jerry', 'internalip1': '192.168.1.1', 'externalip1': '1.1.1.1', 'internalip2': '192.168.1.2', 'externalip2': '2.2.2.2', 'port1': '5451', 'port2': '5450', 'port3': '', 'port4': '', 'port5': '', 'port6': ''}
{'name': 'chris', 'internalip1': '192.168.2.1', 'externalip1': '3.3.3.3', 'internalip2': '192.168.3.5', 'externalip2': '4.4.4.4', 'port1': '1234', 'port2': '', 'port3': '5671', 'port4': '5672', 'port5': '80', 'port6': '443'}
...
...
如何创建一个新的文本文件(data_updated.txt),看起来像这样:
edit "externalip1--internalip1 Port port1"
set extip externalip1
set mappedip "internalip1"
set portforward enable
set extport port1
set mappedport port1
edit "externalip1--internalip1 Port port2"
set extip externalip1
set mappedip "internalip1"
set portforward enable
set extport port2
set mappedport port2
...
...
你可以这样做:
with open('data.txt') as data_file:
lines = data_file.readlines()
output = []
for line in lines:
data = eval(line.strip())
output.extend([
f"edit "{data['externalip1']}--{data['externalip1']} Port {data['port1']}"n",
f"set extip externalip1n",
f"set mappedip "{data['internalip1']}"n",
f"set portforward enablen",
f"set extport {data['port1']}n",
f"set mappedport {data['port1']}n",
'n',
# ...
])
with open('data_updated.txt', 'w') as output_file:
output_file.writelines(output)