我正在编写一个程序来在网络交换机上执行几个命令。该代码基本上要求用户输入网络节点的IP地址,然后将其telnet到其中并执行命令。我已经使代码工作了。现在,假设我需要运行100多个交换机,我将不得不运行脚本100多次。我想也许我可以在文本文件中放入IP地址列表,每行一个,然后代码实际上读取第一行(IP地址)将该地址作为输入telnet到交换机,然后telnet进入切换然后移动到文本文件中的下一行,直到文件结束。以下是我打算使用的内容:
文字档案
172.16.1.1
172.16.1.2
172.16.1.3
172.16.1.4
..........
..........
172.16.1.254
我正在考虑使用以下代码
import fileinput
for line in fileinput.input(['myfile']):
do_something(line)
那么我应该为它读取的每一行使用什么变量类型,然后将其作为输入然后执行代码。
谢谢 甲
答案 0 :(得分:0)
您可以使用open
函数打开文件,然后按行迭代:
with open("your_file.txt") as file:
for line in file:
do_something(line)
如果您想先存储这些IP地址(您可能应该这样做),您可以将它们包含在列表中(your_list = []
),并将do_something(line)
替换为your_list.append(line)
。< / p>
请记住,您可能希望对每一行进行某种验证,以确保它只是数字而不是空格,空白字符,字母等。您可以轻松地执行此操作:< / p>
formatted_line = ''.join([a for a in line if a.isdigit() or a == '.'])
这将创建每个数字字符的列表,然后使用join
按顺序将每个字母添加回字符串。请注意,这假设您仅使用IPv4地址 - 如果您使用的是v6,则需要使用不同的格式化逻辑。
您存储IP地址的类型完全取决于您想要使用的内容(而且您还没有告诉我们),但我认为在大多数情况下,您最好离开它是一个字符串。