我困在水里了。我刚刚开始使用python,这里是我的背景和我想要完成的。。。你知道吗
背景: 我有44个网络交换机,每个都支持telnet和ssh连接。我还有一个带有每个设备配置的ubuntuapache服务器(由一个名为“Nipper”http://sectools.org/tool/nipper/的工具解析)。钳子能很好地满足我们的需要。我对编程中的常用术语有一个基本的了解。。。(列表、元组、字典等)但我缺乏编码经验。你知道吗
我想要达到的目标是: 我刚开始编写一个python程序,打算通过Telnet/SSH自动连接到每个交换机,并提取每个交换机的配置。在我得到一个函数脚本之后,我计划使用“Cron”每周安排一次任务,这样我们就可以更新网络文档了。你知道吗
我的困境/我需要帮助和想法的地方: 我的理解是,下面的代码读取“/var/www/html/目录.txt将文件放入字典“d”。我想为字典中的每个条目创建一个顺序循环,这样我就可以telnet到设备“IP”并获取“running config”,然后将配置保存到“outfile”“/var/www/html/Test”_输出.csv" . 你知道吗
任何想法/帮助让我的代码结构,开始这个循环过程的每个条目,并能够引用“IP”和“文件名”作为一个单独的变量/实体将不胜感激。对于有更多经验的人,我的“参考文件”是否允许我使用“IP”和“文件名”值作为变量,或者我是否需要更改文件的格式?你知道吗
到目前为止我的代码是:
#! /usr/bin/env python3
import csv
d = {}
with open('/var/www/html/Test_Output.csv', mode='w') as outfile:
with open('/var/www/html/Directory.txt.bak', mode='r') as infile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in infile:
rows = ( line.split(",") for line in infile )
d = { row[0]:row[1:] for row in rows }
print(d)
#print(d['"01"'])
#dlist = d.items()
#dlist.sort()
#print(dlist)
#for key, filename in dlist:
# print(key, filename)
我的参考文件:“/var/www/html”/目录.txt" 注意顺序是。。。顺序键、IP地址、文件名的完整路径
"1",172.16.255.183,/var/www/html/Admin/AdminBld-3.html
"2",172.16.255.201,/var/www/html/Admin/AdminBldg-1.html
"3",172.16.255.115,/var/www/html/AV/AV-1.html
"4",172.16.255.198,/var/www/html/MC/MC-198.html
"5",172.16.255.101,/var/www/html/MC/MC-1.html
"6",172.16.255.102,/var/www/html/MC/MC-2.html
"7",172.16.255.103,/var/www/html/MC/MC-3.html
"8",172.16.255.104,/var/www/html/MC/MC-4.html
"9",172.16.255.105,/var/www/html/MC/MC-5.html
"10",172.16.255.106,/var/www/html/MC/MC-6.html
"11",172.16.255.108,/var/www/html/MC/MC-8.html
"12",172.16.255.109,/var/www/html/MC/MC-9.html
"13",172.16.255.2,/var/www/html/MDF/MDF-2.html
"14",172.16.255.1,/var/www/html/MDF/MDF-4507.html
"15",172.16.255.160,/var/www/html/RAM/RAM-2960-1.html
"16",172.16.255.161,/var/www/html/RAM/RAM-2960-2.html
"17",172.16.255.107,/var/www/html/SAC/SAC-1.html
"18",172.16.255.111,/var/www/html/TR/TR1/TR1-1.html
"19",172.16.255.112,/var/www/html/TR/TR1/TR1-2.html
"20",172.16.255.113,/var/www/html/TR/TR1/TR1-3.html
"21",172.16.255.114,/var/www/html/TR/TR1/TR1-4.html
"22",172.16.255.121,/var/www/html/TR/TR2/TR2-1.html
"23",172.16.255.122,/var/www/html/TR/TR2/TR2-2.html
"24",172.16.255.123,/var/www/html/TR/TR2/TR2-3.html
"25",172.16.255.124,/var/www/html/TR/TR2/TR2-4.html
"26",172.16.255.126,/var/www/html/TR/TR2/TR2_5.html
"27",172.16.255.131,/var/www/html/TR/TR3/TR3-1.html
"28",172.16.255.132,/var/www/html/TR/TR3/TR3-2.html
"29",172.16.255.133,/var/www/html/TR/TR3/TR3-3.html
"30",172.16.255.134,/var/www/html/TR/TR3/TR3-4.html
"31",172.16.255.141,/var/www/html/TR/TR4/TR4-1.html
"32",172.16.255.142,/var/www/html/TR/TR4/TR4-2.html
"33",172.16.255.143,/var/www/html/TR/TR4/TR4-3.html
"34',172.16.255.144,/var/www/html/TR/TR4/TR4-4.html
"35",172.16.255.145,/var/www/html/TR/TR4/TR4-5.html
"36",172.16.255.151,/var/www/html/TR/TR5/TR5-1.html
"37",172.16.255.152,/var/www/html/TR/TR5/TR5-2.html
"38",172.16.255.153,/var/www/html/TR/TR5/TR5-3.html
"39",172.16.255.181,/var/www/html/TR/TRSW/TRSW-1.html
"40",172.16.255.184,/var/www/html/TR/TRSW/TRSW-3.html
"41",172.16.255.171,/var/www/html/TR/TRTC/TRTC-1.html
"42",172.16.255.172,/var/www/html/TR/TRTC/TRTC-2.html
"43",172.16.255.173,/var/www/html/TR/TRTC/TRTC-3.html
"44",172.16.255.175,/var/www/html/TR/TRTC/TRTC_5.html
当前脚本输出:(应该是字典“d”)
{'"4"': ['172.16.255.198', '/var/www/html/MC/MC-198.html\n'], '"38"': ['172.16.255.153', '/var/www/html/TR/TR5/TR5-3.html\n'], '"16"': ['172.16.255.161', '/var/www/html/RAM/RAM-2960-2.html\n'], '"20"': ['172.16.255.113', '/var/www/html/TR/TR1/TR1-3.html\n'], '"40"': ['172.16.255.184', '/var/www/html/TR/TRSW/TRSW-3.html\n'], '"10"': ['172.16.255.106', '/var/www/html/MC/MC-6.html\n'], '"3"': ['172.16.255.115', '/var/www/html/AV/AV-1.html\n'], '"14"': ['172.16.255.1', '/var/www/html/MDF/MDF-4507.html\n'], '"9"': ['172.16.255.105', '/var/www/html/MC/MC-5.html\n'], '"39"': ['172.16.255.181', '/var/www/html/TR/TRSW/TRSW-1.html\n'], '"43"': ['172.16.255.173', '/var/www/html/TR/TRTC/TRTC-3.html\n'], '"41"': ['172.16.255.171', '/var/www/html/TR/TRTC/TRTC-1.html\n'], '"30"': ['172.16.255.134', '/var/www/html/TR/TR3/TR3-4.html\n'], '"7"': ['172.16.255.103', '/var/www/html/MC/MC-3.html\n'], '"32"': ['172.16.255.142', '/var/www/html/TR/TR4/TR4-2.html\n'], '"29"': ['172.16.255.133', '/var/www/html/TR/TR3/TR3-3.html\n'], '"33"': ['172.16.255.143', '/var/www/html/TR/TR4/TR4-3.html\n'], '"37"': ['172.16.255.152', '/var/www/html/TR/TR5/TR5-2.html\n'], '"17"': ['172.16.255.107', '/var/www/html/SAC/SAC-1.html\n'], '"28"': ['172.16.255.132', '/var/www/html/TR/TR3/TR3-2.html\n'], '"27"': ['172.16.255.131', '/var/www/html/TR/TR3/TR3-1.html\n'], '"2"': ['172.16.255.201', '/var/www/html/Admin/AdminBldg-1.html\n'], '"11"': ['172.16.255.108', '/var/www/html/MC/MC-8.html\n'], '"12"': ['172.16.255.109', '/var/www/html/MC/MC-9.html\n'], '"22"': ['172.16.255.121', '/var/www/html/TR/TR2/TR2-1.html\n'], '"44"': ['172.16.255.175', '/var/www/html/TR/TRTC/TRTC_5.html\n'], '"34\'': ['172.16.255.144', '/var/www/html/TR/TR4/TR4-4.html\n'], '"1"': ['172.16.255.183', '/var/www/html/Admin/AdminBld-3.html\n'], '"15"': ['172.16.255.160', '/var/www/html/RAM/RAM-2960-1.html\n'], '"26"': ['172.16.255.126', '/var/www/html/TR/TR2/TR2_5.html\n'], '"35"': ['172.16.255.145', '/var/www/html/TR/TR4/TR4-5.html\n'], '"6"': ['172.16.255.102', '/var/www/html/MC/MC-2.html\n'], '"21"': ['172.16.255.114', '/var/www/html/TR/TR1/TR1-4.html\n'], '"25"': ['172.16.255.124', '/var/www/html/TR/TR2/TR2-4.html\n'], '"24"': ['172.16.255.123', '/var/www/html/TR/TR2/TR2-3.html\n'], '"23"': ['172.16.255.122', '/var/www/html/TR/TR2/TR2-2.html\n'], '"19"': ['172.16.255.112', '/var/www/html/TR/TR1/TR1-2.html\n'], '"8"': ['172.16.255.104', '/var/www/html/MC/MC-4.html\n'], '"36"': ['172.16.255.151', '/var/www/html/TR/TR5/TR5-1.html\n'], '"18"': ['172.16.255.111', '/var/www/html/TR/TR1/TR1-1.html\n'], '"13"': ['172.16.255.2', '/var/www/html/MDF/MDF-2.html\n'], '"5"': ['172.16.255.101', '/var/www/html/MC/MC-1.html\n'], '"31"': ['172.16.255.141', '/var/www/html/TR/TR4/TR4-1.html\n'], '"42"': ['172.16.255.172', '/var/www/html/TR/TRTC/TRTC-2.html\n']}
谢谢大家花时间帮我看这个!就像我说的我是个Python新手。我也在努力学习软件定义网络(SDN)的基础知识,我从你们身上学到了很多东西,花时间发布想法和想法。你知道吗
下面是我的代码:
现在,我感觉好多了,因为我可以单独轻松地引用每个字典项(键、IP地址、文件名)。该代码应该是远程获取每个设备配置的坚实基础。你知道吗
再次感谢!你知道吗
如果我正确地理解了您的意思,那么您要做的就是按顺序访问IP,然后执行一些操作。你知道吗
我可以看到你字典里的键加了引号。尝试显示d['4']。它将抛出一个错误。 要删除这个,您应该使用Python的内置csv reader模块。你知道吗
像这样的方法应该很管用:
现在让我们来看看如何循环通过dict
这将帮助您摆脱多余的引号: Remove quotes in python dictionary
如果有帮助,请告诉我:)
相关问题 更多 >
编程相关推荐