2014-11-03 51 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地址的類型完全取決於你想要做什麼(你沒有告訴我們),但我認爲對於大多數目的,你最好把它作爲一個串。

相關問題