python编程知识点_Python脚本编程的知识点

for循环

对列表进行迭代

>>> for i in [1,2,3]:

···print (i)

···

1

2

3

通过range()函数生成连续数列

>>> for i in range(1,5):

···print(i)

···

1

2

3

4

range(初始值,终止值,步长),range得到的是一个左闭右开区间。

>>> range(1,10)

[1,2,3,4,5,6,7,8,9]

>>>range(1,9,2)

[1,3,5,7]

文件操作

文件操作的基本流程

调用open()函数打开文件,并创建一个File对象

调用File对象的read()或write()等方法,对文件内容进行读写等操作。

调用File对象的close()方法,关闭并保存文件内容。

open()函数

通过open()函数以指定模式打开文件并创建文件对象:

文件对象=open('文件路径', '模式')

文件打开模式主要包括:

1、r只读模式(默认)

2、w只写模式(如果文件已经存在,先清空原有内容,文件不存在则创建文件)

3、a追加模式(不覆盖文件中原有的内容)

如果传递给open()的文件名不存在。写模式和添加模式都会创建一个新的空文件。

写入文件

write()方法不会在字符串的末尾自动添加换行字符

向文件中写入内容:

>>> f=open("/tmp/ip.txt","w")

>>> f.write("192.168.80.1\n")

>>> f.write("192.168.80.2\n")

>>> f.write("192.168.80.3\n")

>>> f.close()

向文件中追加内容:

>>> f=open("/tmp/ip.txt","o")

>>> f.write("192.168.80.10\n")

>>> f.write("192.168.80.20\n")

>>> f.close()

读取文件

Python文件对象提供了三种“读”方法:

1、read()

read()方法可以一次性读取文件的所有内容

>>> f=open("/tmp/ip.txt", "r")

>>> f.read()

'192.168.80.1\n192.168.80.2\n192.168.80.3\n'

>>> f.close()

read()方法也可以指定读取前几个字节的数据:

>>> f=open("/tmp/ip.txt","r")

>>> f.read(12)

'192.168.80.1'

>>> f.close()

2、readline()

readline()方法可以从文件中读取一行并作为结果返回:

>>> f-open("/tmp/ip.txt","r")

>>> f.readline()

'192.168.80.1\n'

>>> f.readline()

'192.168.80.2\n'

>>> f.close()

3、readlines()

readlines()方法返回一个列表,文件的每一行作为列表的一个元素:

>>> f=open("/tmp/ip.txt","r")

>>> f.readlines()

['192.168.80.1\n', '192.168.80.2\n', '192.168.80.3\n']

>>> f.seek(0)

>>> f.readlines()[0]#数组限定读取的信息

'192.168.80.1\n'

f.close()

4、seek()方法可以将指针返回到指定位置。

>>> f.seek(0)#返回到第一行

'192.168.80.1\n'

读取文件

通过for循环对列表进行迭代,这是最常用的读取方法。

>>> f=open("/tmp/ip.txt", "r")

>>> for i in f.readlines():

print (i)

通过字符串strip()方法将文件中每行末尾的\n去除

>>> f=open("/tmp/ip.txt", "r")

>>> for i in f.readlines():

print (i.strip("\n"))

导入模块(库)

模块的概念

模块也叫库,每个模块中都内置了大量的功能函数、类和变量。它就像是积木,可以根据需要进行调用组合。

模块就是程序,每个模块就是一个后缀为.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是一个变量,专门用来向Python解释器传递参数,类似于Shell脚本编程中的位置变量。

#!/usr/bin/env python

#coding=utf-8

import sys

print("脚本文件是:",sys.argv[0])

print("参数的数量是:",len(sys.argv))

print("所有的参数:",str(sys.argv))

print("第一个参数是:",sys.argv[1])

print("第二个参数是:",sys.argv[2])

print("第三个参数是:",sys.argv[3])

(2)sys.exit()

sys.exit()是一个方法,作用是退出当前程序。

sys.exit()退出当前程序,并返回SystemExit异常。

sys.exit(0),正常退出。

sys.exit(“程序退出”),显示一段提示信息。

#!/usr/bin/env python

#coding=utf-8

import sys

if len(sys.argv) != 2:

print("正确使用方法:"+ sys.argv[0] + "IP列表文件")

print("例如:./m0re.py /root/ip.txt")

sys.exit()

OS模块

os模块提供了访问操作系统服务的功能。

它最常用的是os.system()方法,可以在Python中使用操作系统命令。

os.system("ls /root")

banner.py flag.sh pass.txt

ip.txt shadow

0

还有几个

os.path.isfile()方法,判断指定的对象是否为文件,返回True或False。

>>> os.path.isfile("/root/pass.txt")

True

>>> os.path.isfile("/root/password.txt")

False

os.path.isdir()方法,判断指定对象是否为目录。

os.path.exists()方法,判断指定的对象是否存在。

>>> os.path.exists("/root/pass.txt")

True

>>> os.path.exists("/root/")

True

多线程

通过threading模块中的Thread()类可以创建和管理线程对象。

使用时,使用多线程调用一个函数,然后启动,就可以明显提高速度。

t=Thread(target=checkVulns,args=(ip,port))

t.start()

用时再查

optparse模块

利用该模块可以设置选项,通过选项向脚本传递所需的参数。

from optparse import OptionParser

parser=OptionParser()

parser.add_option("-f","--file",type="string",dest="filename")

parser.add_option("-i","--ip",type="string",dest="address")

(option,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的方式调用参数值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值