我是Python新手。无法让我的第一个脚本正常工作。 我想要什么:从XLSPython IP输出(打印)无法正常工作
- 获取IP
- 打印的是IP
- 远程登录到IP
- 授权
- 显示运行\ -N,退出\ n
- 写输出到文件命名“IP”
- 从xls获取下一个IP
此XLS包含约6k个主机。我对制作多线程有一些想法,但对此还一无所知。将很快尝试。
问题是,我无法在控制台中获得好的“打印(主机)”输出。脚本运行良好,但不是正确的IP名称,而是每次都看到第一个IP。
IP列表:
10.1.115.105 10.1.115.108 10.1.115.143 等
我在聊天
[根@本地蟒蛇]#python3.3 telnet_bck.py看
10.1.115.105
10.1.115.105
10.1.115.105
但文件正确保存
-rw-R - R-- 1根根16536年04月08 7点38分10.1.115.105
-rw-R --r-- 1根根16536年04月08 7点38 10.1.115.108
-rw-R - R-- 1根根16536年04月08 6点53 10.1.115.243
我想问题是在“host = ip_addr_list [0]”附近的地方,但不知道在哪里。请帮忙,伙计们。任何帮助将不胜感激。
import xlrd #Excel module
import re #Parser module
import os
import glob
import sys
import telnetlib #telnet module
rb = xlrd.open_workbook('/samba/allaccess/test.xlsx')
sheet = rb.sheet_by_name('IPs')
num_rows = sheet.nrows
num_cols = sheet.ncols
ip_addr_list = [sheet.row_values(rawnum)[0] for rawnum in range(sheet.nrows)]
num_ips = 0
while num_ips < num_rows:
host = ip_addr_list[0]
port = "23"
user = "test"
password = "test"
print(host)
tn = telnetlib.Telnet(host,port)
tn.read_until(b"ser name:")
tn.write(user.encode('ascii')+b"\n")
tn.read_until(b"assword:")
tn.write(password.encode('ascii')+b"\n")
tn.write(b"sh ru"+b"\n")
tn.write(b"exit"+b"\n")
str_all = tn.read_all()
re.sub("^\s+|\n|\r|\s+$", '', str_all.decode())
file = open('{0}'.format(ip_addr_list[num_ips]),"wb")
file.write(str_all)
num_ips += 1
您正在打印'ip_addr_list [0]',但正在创建'ip_addr_list [num_ips]'文件名。 –
谢谢。麻烦真的在这里。是否有可能+评论,而不是答案? –