python编写banner获取的常用模块
模块的概念:
模块也叫库,每个模块中都内置了大量的功能和函数、类和变量。它就像是积木,可以根据需要进行调用组合。
模块就是程序,每个模块就是一个后缀为.py的Python程序。
Python的模块分为标准模块和第三方模块,标准模块是Python内置的,第三方模块则需要安装之后才能使用。
可以痛苦help命令了解一个模块的基本帮助信息,如:help('sys')
无论标准模块还是第三方模块,都需要先导入之后才可以使用。
在程序中应只导入必须的模块,以减少运行压力。
导入模块的方法:
直接调用模块:import 模块名
从模块中调用某个函数:from 模块名 import 函数名
import os ,应采用“模块名,方法名”的形式使用模块中的方法,如os,system()
from os import * ,可以直接使用system()方法,无需加上模块名作为前缀。(不推荐使用,因为增加运行压力。)
sys模块
sys是一个标准模块,与Python解释器密切相关。
(1)sys.argv
sys.argv是一个变量,专门用来向Pyhton解释器传递参数,类似于Shell脚本编程中的位置变量。
sys.argv的第一个参数永远是脚本的名字
import sys
print "脚本文件是:",,sys.argv[0]
print "用户输入的参数数量是:",len(sys.argv)-1
print "所有的参数是:",sys.argv
print "用户输入的第一个参数是:",sysargv[1]
print "用户输入的第二个参数是:",sysargv[2]
print "用户输入的第三个参数是:",sysargv[3]
root@kali:~# python test.py hello python liujizhou
脚本文件是: test.py
用户输入的参数数量是: 3
所有的参数是: ['test.py', 'hello', 'python', 'liujizhou']
用户输入的第一个参数是: hello
用户输入的第二个参数是: python
用户输入的第三个参数是: liujizhou
(2)sys.exit()
sys.exit()是一个方法,作用是退出当前程序。
sys.exit(),退出当前程序,并返回SystemExit异常
sys.exit(0),正常退出
sts.exit("程序退出"),显示一段提示信息
import sys
if len(sys.argv) !=2:
print "正确使用方法:" + sys.argv[0] + " IP列表文件"
print "例如:./test.py /root/ip.txt"
sys.exit()
//这个文件的主要作用就是用于至少输入两个参数
os模块
os模块提供了访问操作系统服务的功能。
它最常用的是os.system()方法,可以在Python中是用操作系统命令
>>> os.system("ls /root")
公共 视频 文档 音乐 getbannet.py liu.txt vulhub-master
模板 图片 下载 桌面 go test.py vulhub-master.zip
0
os.path.isfile()方法,判断指定的对象是否为文件,返回True或者False。
>>> os.path.isfile("/root/liu.txt")
True
>>> os.path.isfile("/root/go")
False
os.path.isdir()方法,判断指定对象是否为目录。
os.path.exists()方法,判断指定对象是否存在。
>>> os.path.exists("/root/liu.txt")
True
>>> os.path.exists("/root/")
True
>>> os.path.exists("/root/1.txt")
False
多线程:
ctrl+z 后台执行
jobs -l查看后台
kill -9 ID 杀死进程
写入多IP循环文件
>>> f=open("/root/ip.txt","w")
>>> for i in range(1,255):
... ip="192.168.80."+str(i)
... f.write(ip+"\n")
...
>>> f.close()
进程是线程的容器,线程是操作系统调度和分配处理器时间的基本单位,负责执行包含在进程地址空间中的代码。
当进程被创建时,操作系统会自动为之创建一个线程,称为主线程,主线程再根据需要动态创建其它子线程。
通过threading模块中的Thread()类可以创建和管理线程对象。
通常都是通过多线程的方式来执行一个函数,从而使得该函数中的代码可以并发执行。
t=threading.Thread(target=要执行的函数,args=(向函数传递的参数))
t.start()
optparse模块
利用该模块可以设置选项,通过选项向脚本传递所需的参数
from optparse import OptionParser
usage="usage: %prog -f <filename> -i <ip address>"
编写帮助信息 %prog是自动把当前的文件名替换上去
parser=OptionParser(usage=usage)
parser.add_option("-f","--file",type="string",dest="filename",help="IP address file")
parser.add_option("-i","--ip",type="string",dest="address",help="IP address")
(options,args)=parser.parse_args()
print options.filename
print options.address
第一行,导入optparse模块中的类OptionParser。
第二行,将类实例化成对象。
第三行,利用add_option()方法添加选项。-f和--file分别表示长短选项名,长选项可以省略。type指定了参数类型,默认为string,dest指定将参数赋值给哪个变量。
第四行,利用add_option()方法添加选项-i和--ip。
第五行,利用parse_args()方法来获取定义的选项和参数,可以视作一种固定用法。
parse_args()方法返回两个值,其中options对象保存了所传递进来的参数值
第六行、七行,通过options.filename和options.address的方式调用参数值。
python编写banner获取的常用模块的更多相关文章
- 学习Python必须要知道的常用模块
在程序设计中,为完成某一功能所需的一段程序或子程序:或指能由编译程序.装配程序等处理的独立程序单位:或指大型软件系统的一部分.本文为你介绍了Python中的两种常用模块. os: 这个模块包含普遍的操 ...
- python自动化测试学习笔记-4常用模块
常用模块 1.os 2.sys 3.random 4.string 5.time 6.hashlib 一.os模块 os模块主要用来操作文件.目录,与操作系统无关.要使用os模块首先要导入OS模块,用 ...
- python自动化测试学习笔记-5常用模块
上一次学习了os模块,sys模块,json模块,random模块,string模块,time模块,hashlib模块,今天继续学习以下的常用模块: 1.datetime模块 2.pymysql模块(3 ...
- 【JulyEdu-Python基础】第 7 课:Python并发编程以及系统常用模块
主要内容 Python多进程与多线程 Python使用Hadoop分布式计算库mrjob Python使用Spark分布式计算库PySpark 例子:分别使用MapReduce和Spark实现word ...
- Python学习之路13☞常用模块
一 time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“type(t ...
- Python全栈之路----常用模块----subprocess模块
我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python ...
- Python成长之路(常用模块学习)
Python 拥有很多很强大的模块 主要写一下常用的几个吧 大概就是这些内容了 模块介绍 time &datetime模块 random os sys shutil json & pi ...
- Python学习-第四节:常用模块-logging,re,time
1:logging模块 import logging logging.debug('This is debug message') logging.info('This is info message ...
- Python学习—基础篇之常用模块
常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
随机推荐
- 到头来还是逃不开Java - Java13面向对象基础
面向对象基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来.所以 ...
- PTA的Python练习题(五)
昨天耽搁了一天,今天继续 从 第3章-5 字符转换 开始 1. a=input() b="" for i in a: ': b=b+iprint(int(b))#(写成b=i+b ...
- 七 Spring的IOC的注解方式
Spring的IOC的注解方式入门 引入注解约束,配置组件扫描 类上的注解: @Conponent @Controller @Service @Repository 普通属性的注解 @value ...
- 夯实Java基础(二十)——JAVA正则表达式
1.为什么要用正则表达式 首先我们先来做一道题目:判断一个字符串是否由数字组成.代码示例如下: public class Test { public static void main(String[] ...
- python字符记录
所有的字符方法论 # -*- coding: utf-8 -*- 2 #__author__ = 'Administrator' 3 4 name = "my name is {name} ...
- 「CH6202」黑暗城堡
「CH6202」黑暗城堡 传送门 这道题是要让我们求以点 \(1\) 为源点的最短路树的方案数. 我们先跑一遍最短路,然后考虑类似 \(\text{Prim}\) 的过程. 当我们把点 \(x\) 加 ...
- Ubuntu 解决TXT文本乱码问题
只要依次在终端输入这两行指令即可: gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030' ...
- Spring @Async之一:实现异步调用示例
什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果 ...
- Python开发之Anconda环境搭建
Python的强大之处在于它的应用范围广泛,遍及人工智能.科学计算.web开发.系统运维.大数据及云计算等,实现其强大功能的前提,就是Python具有数量庞大且功能相对完善的标准库和第三方库.通过对库 ...
- Golang 如何交叉编译
Golang 支持交叉编译,即在一个平台上生成另一个平台的可执行程序.方法如下: Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux G ...