1:输出的是比 i的开平方 小 的最大整数
import math
if __name__ == '__main__':
print int(math.sqrt(48)) #6
if __name__ == '__main__':
print int(math.sqrt(48)) #6
2:在本地多线程序进行shell,返回结果保存到数组中
# -*- coding:utf-8 -*- #!/usr/bin/python import paramiko import threading import logging import logging.config import sys logging.config.fileConfig("logging.conf") logger = logging.getLogger("main") error_shell=['shutdown','reboot','halt','poweroff','init','kill'] class MyThread(object): def __init__(self, func_list=None): #所有线程函数的返回值汇总,如果最后为0,说明全部成功 self.ret_flag = [] self.func_list = func_list self.threads = [] def set_thread_func_list(self, func_list): """ @note: func_list是一个list,每个元素是一个dict,有func和args两个参数 """ self.func_list = func_list def ret_value(self): """ @note: 所有线程函数的返回值之和,如果为0那么表示所有函数执行成功 """ return self.ret_flag def trace_func(self, func, *args, **kwargs): """ @note:替代profile_func,新的跟踪线程返回值的函数,对真正执行的线程函数包一次函数,以获取返回值 """ ret = func(*args, **kwargs) self.ret_flag.append(ret) def start(self): """ @note: 启动多线程执行,并阻塞到结束 """ self.threads = [] self.ret_flag = [] for func_dict in self.func_list: if func_dict["args"]: new_arg_list = [] new_arg_list.append(func_dict["func"]) for arg in func_dict["args"]: new_arg_list.append(arg) new_arg_tuple = tuple(new_arg_list) t = threading.Thread(target=self.trace_func, args=new_arg_tuple) else: t = threading.Thread(target=self.trace_func, args=(func_dict["func"],)) self.threads.append(t) for thread_obj in self.threads: thread_obj.start() for thread_obj in self.threads: thread_obj.join() def ssh2(ip,username,passwd,cmd): Information=[]; try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,22,username,passwd,timeout=5) for m in cmd: if(is_harmful_shell(m)): logger.error('not running harmful shell: %s on:%s'%(m,ip)) else: stdin, stdout, stderr = ssh.exec_command(m) # stdin.write("Y") #简单交互,输入 ‘Y’ out = stdout.readlines() #屏幕输出 for o in out: Information.append(o); logger.info('Performed on %s machine:'%(ip)+m); ssh.close() return Information; except : logger.error( '%s\tError\n'%(ip) +sys.exc_info()[0],sys.exc_info()[1]); def is_harmful_shell(cmd): for m in error_shell: if(cmd.lower().find(m.lower())!=-1): return True; return False; if __name__=='__main__': mt = MyThread() g_func_list = [] cmd = ['hostname','cat /proc/sys/kernel/random/uuid']#你要执行的命令列表 username = "root" #用户名 passwd = "root" #密码 threads = [] #多线程 print "Begin......" for i in range(129,131): ip = '192.168.197.'+str(i) g_func_list.append({"func":ssh2,"args":(ip,username,passwd,cmd)}) mt.set_thread_func_list(g_func_list) mt.start() for k, v in enumerate(mt.ret_value()): print k, v
日志
[loggers]
keys=root,main
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=fmt
[logger_root]
level=INFO
handlers=consoleHandler
[logger_main]
level=INFO
qualname=main
handlers=fileHandler
[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=fmt
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=INFO
formatter=fmt
args=('tst.log','a',20000,5,)
[formatter_fmt]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
keys=root,main
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=fmt
[logger_root]
level=INFO
handlers=consoleHandler
[logger_main]
level=INFO
qualname=main
handlers=fileHandler
[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=fmt
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=INFO
formatter=fmt
args=('tst.log','a',20000,5,)
[formatter_fmt]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
相关推荐
这是本人在学习Python时候自己写的好玩的Python程序,里面包含了可以说是python基础的全部吧,非常的适合小白学习Python,谢谢大佬了~~~
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
骰子,中国古代民间娱乐用来投掷的博具。骰子通常作为桌上游戏的小道具最常见的是六面骰,它是一个正立方体,上面分别有1-6个孔(或数字),其相对两面的数字之和必为7。中国的骰子习惯在一点和四点漆上红色。...
转载资源。用python2爬取4399好玩的游戏,值得学习和参考,也可以根据自己的想法改代码。
超好玩的Python随机点名器(附源码),仅供个人学习
python环境,python入门demo,代码,python入门,好玩的python代码
好玩的Python1
2.1 Python中的输入输出函数 2.2 Python中的注释 2.3 Python中的变量 3、Python中的基本数据类型 3.1 整型-int 3.2 浮点型-float 3.3 布尔类型-bool 3.4 字符串类型-str 4、Python中的常见运算符 4.1 算术...
python库的中文参考手册,类似于Java的API文档,可以在里面进行搜索查询等
python3.8中文帮助文档 离线CHM版 python3.8.chm
programming python 中文第四版
两本python_opencv中文教程,OpenCV-Python-Toturial-中文版,OpenCV入门教程
用python语言来做一些NLP(自然语言处理)的工作,笔记分为11章,层层梯进,包含开发环境介绍、功能代码实现步骤、案例实战等。
python3.10中文使用手册
尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了 尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。...
CNN 中文文本挖掘 文本分类 python 深度学习 机器学习 CNN 中文文本挖掘 文本分类 python 深度学习 机器学习
Python中调用C++dll例子,使用python中的ctypes。
Python 3.9.0 文档 欢迎!这里是 Python 3.9.0 的中文文档。 按章节浏览文档: Python 3.9 有什么新变化? 或显示自 2.0 以来的全部新变化 入门教程 从这里看起 标准库参考 放在枕边作为参考 语言参考 讲解...
python中文手册,适用于python入门学习,描述python基本使用。