2014-11-03 81 views
0

我正在编写一个程序在网络交换机上执行一些命令。代码基本上要求用户输入网络节点的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

说明您正在使用的语言或标记它会很有用 – 2014-11-03 20:20:04

+0

我使用Python作为编码语言。 – Rudra 2014-11-03 21:54:10

回答

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)

请记住,您可能希望对每行进行一些验证,以确保它只是数字而不是空格,空白字符,字母等。您可以轻松地这样做:

formatted_line = ''.join([a for a in line if a.isdigit() or a == '.']) 

这将创建每个数字字符的列表,然后使用join将每个字母顺序添加回字符串中。请注意,这假定您只使用IPv4地址 - 如果您使用的是v6,则您希望使用不同的格式逻辑。

你存储IP地址的类型完全取决于你想要做什么(你没有告诉我们),但我认为对于大多数目的,你最好把它作为一个串。

相关问题