一在windows主机上探测主机是否存活

下面以多线程的方式:


import os
import time
import subprocess
from concurrent.futures import ThreadPoolExecutor
import re def ping_call(network,num):
ipaddr='ping '+network+"."+str(num)
command=ipaddr+' -n 2 -w 1'
print(command)
result=subprocess.Popen(command,
shell=True,stdout=subprocess.PIPE)
s=result.stdout.read().decode('gbk')
e = "TTL" in s
if e:
print('ip地址:{} ping ok'.format(ipaddr))
else:
print('ip地址:{} ping fall'.format(ipaddr)) if __name__ == '__main__':
network=input('请输入网段>>>').strip()
host=input('请输入主机范围以空格隔开>>>').strip().split()
a,b=host[0],host[1]
print(network.split('.'))
if len(network.split('.'))==3 and a.isdigit() and b.isdigit() and re.match('\d{1,3}\.\d{1,3}\.\d{1,3}',network):
a=int(a)
b=int(b)
start_time = time.time()
res_l=[]
pool=ThreadPoolExecutor(50)
for line in range(a,b+1):
ret=pool.submit(ping_call,network,line)
res_l.append(ret)
pool.shutdown()
print("程序耗时{:.2f}".format(time.time() - start_time))
 

二在Linux上面打印九九乘法表

方法一

#!/usr/bin/python3.6
for i in range(1,10):
  for j in range(1,i+1):
    print(i,'*',j,'=',i*j,end='\t')
  print('\n')

方法二:一行命令版

print(''.join([str(a) +"*"+ str(b) +"="+ str(a * b) + str('\n' if a==b else '\t') for a in range(1, 10) for b in range(1, a+1)]))

三 结合Linux命令和python命令,使得代码多样化

主要命令  subprocess  用于python3 相对于python2的 commands命令,还有popen命令,popen命令执行后面读取后,最后会有一个空行

popen返回的是file read的对象,对其进行读取使用read()

[root@mylinux python-script]# cat guan-dao.py
import os
import subprocess
var=subprocess.getoutput("awk -F ':' '{print $1,$7}' /etc/passwd")#var结果时字符串,使用了shell命令
os.environ['var']=var #将变量传入shell的空间
var=list(var.split("\n")) #以回车为分割变成列表
for i in var:
i=i.split(" ")
if i[1].startswith('/s'):
print(i)
print('当前执行用户是:')
print(os.popen('whoami').read()) #读取当前用户,这样就使用了shell命令
result=os.popen("echo $var|awk '{for(i=2;i<=NF;i=i+2){if($i ~ /^\/b.*sh$/)print $(i-1),$i}}'").read() #使用shell命令,打印以/b开头sh结尾的字段
#result=os.popen("echo $var|awk '{for(i=2;i<=NF;i=i+2)print $i}'").read()
print(result)

打印结果

['bin', '/sbin/nologin']
['daemon', '/sbin/nologin']
['adm', '/sbin/nologin']
['lp', '/sbin/nologin']
['shutdown', '/sbin/shutdown']
['halt', '/sbin/halt']
['mail', '/sbin/nologin']
['operator', '/sbin/nologin']
['games', '/sbin/nologin']
['ftp', '/sbin/nologin']
['nobody', '/sbin/nologin']
['systemd-bus-proxy', '/sbin/nologin']
['systemd-network', '/sbin/nologin']
['dbus', '/sbin/nologin']
['polkitd', '/sbin/nologin']
['abrt', '/sbin/nologin']
['unbound', '/sbin/nologin']
['tss', '/sbin/nologin']
['libstoragemgmt', '/sbin/nologin']
['rpc', '/sbin/nologin']
['colord', '/sbin/nologin']
['usbmuxd', '/sbin/nologin']
['saslauth', '/sbin/nologin']
['geoclue', '/sbin/nologin']
['setroubleshoot', '/sbin/nologin']
['rtkit', '/sbin/nologin']
['qemu', '/sbin/nologin']
['radvd', '/sbin/nologin']
['chrony', '/sbin/nologin']
['ntp', '/sbin/nologin']
['sssd', '/sbin/nologin']
['rpcuser', '/sbin/nologin']
['nfsnobody', '/sbin/nologin']
['pulse', '/sbin/nologin']
['gdm', '/sbin/nologin']
['gnome-initial-setup', '/sbin/nologin']
['avahi', '/sbin/nologin']
['postfix', '/sbin/nologin']
['sshd', '/sbin/nologin']
['tcpdump', '/sbin/nologin']
['apache', '/sbin/nologin']
['zabbix', '/sbin/nologin']
当前执行用户是:
root root /bin/bash
liming /bin/bash
zhangsan /bin/bash
pyenv /bin/bash
wang5 /bin/bash
mysql /bin/bash

四 对文件的内容进行匹配找到合适的内容

[root@localhost aaa]# cat tt.py
#!/usr/bin/python3
#
import re
with open('hhh.txt','r')as file:
content=file.readlines()
for i in content:
if re.match("2019/7/11 (13|15):\d{2}\s\d{3}",i): #\s为空格,\d为数字 2019/7/11 (13|15):\d{2}\s\d{2}包括 2019/7/11 (13|15):\d{2}\s\d{3}匹配的内容
#如需精确可以加$ 2019/7/11 (13|15):\d{2}\s\d{2}$ print(i)
[root@localhost aaa]# python3 tt.py 
2019/7/11 15:00 328

python类脚本的更多相关文章

  1. python 类知识点总结

    python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象 ...

  2. 学习python类

    类:Python 类提供了面向对象编程的所有基本特征: 允许多继承的类继承机制, 派生类可以重写它父类的任何方法, 一个方法可以调用父类中重名的方法. 对象可以包含任意数量和类型的数据成员. 作为模块 ...

  3. python类,魔术方法等学习&&部分ssti常见操作知识点复习加深

    python类学习&&部分ssti常见操作知识点复习加深 在做ssti的模块注入的时候经常觉得自己python基础的薄弱,来学习一下,其实还是要多练习多背. 在python中所有类默认 ...

  4. Python类中super()和__init__()的关系

    Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...

  5. LightMysql:为方便操作MySQL而封装的Python类

    原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...

  6. python 类属性与方法

    Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...

  7. python 类以及单例模式

    python 也有面向对象的思想,则一切皆对象 python 中定义一个类: class student: count = 0         books = [] def __init__(self ...

  8. Python类的特点 (1):构造函数与方法

    Python中,类的特点: #encoding:utf-8 class Parent(object): x=1 #x是Parent类的属性(字段) def __init__(self): print ...

  9. Python类属性,实例属性

    1.Python类数据属性:定义在类里面但在函数外面的变量,它们都是静态的. #一段很简单的代码,但反应了很多 >>> class A(): a=1 #一个类里面有个属性a > ...

随机推荐

  1. java 多线程详解

    一.重点 重点: 1.创建和启动线程 2.实现线程调度 3.实现线程同步 4.实现线程通信 1.为什么要学习多线程? 当多个人访问电脑上同一资源的时候,要用到多线程,让每个人感觉很多电脑同时为多个人服 ...

  2. [转]Scrapy简单入门及实例讲解

    Scrapy简单入门及实例讲解 中文文档:   http://scrapy-chs.readthedocs.io/zh_CN/0.24/ Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用 ...

  3. SQL Server孤立账户解决办法

    选择你想要的数据库. 执行 exec sp_change_users_login 'UPDATE_ONE','用户名','登录名' 假如你的登录名是:sd exec sp_change_users_l ...

  4. sql server 拼接字段

    方式一: --select @p_AllPARTOFCHECK = (select CAST(t.PARTOFCHECK as varchar)+'|' from QUEUEDETAIL t wher ...

  5. Delegate event 委托事件---两个From窗体使用委托事件

    窗体如下:   public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void b ...

  6. linux下串口调试工具

    apt install cutecom 或者 serialtool 后者github上搜索

  7. wsl(Windows Subsystem for Linux)安装简易指南

    1. 在“启用或关闭Windows功能”窗口中打开“适用于Linux的Windows子系统”: 2. 让你的Windows更新程序将你的Windows更新到最新版本: 3. 在Microsoft St ...

  8. 【Spring学习笔记-2.1】Spring的设值注入和构造注入

    设值注入: 先通过无参数的构造函数创建一个Bean实例,然后调用对应的setter方法注入依赖关系: 配置文件: <?xml version="1.0" encoding=& ...

  9. Java-Runoob-高级教程-实例-数组:14. Java 实例 – 在数组中查找指定元素

    ylbtech-Java-Runoob-高级教程-实例-数组:14. Java 实例 – 在数组中查找指定元素 1.返回顶部 1. Java 实例 - 在数组中查找指定元素  Java 实例 以下实例 ...

  10. 廖雪峰Java3异常处理-2断言和日志-3使用Commons Logging

    Commons Logging是Apache创建的日志模块: 可以挂接不同的日志系统 可以通过配置文件指定挂接的日志系统 自动搜索并使用Log4j 如果Log4j不存在,使用JDK Logging(J ...