OS模块函数
os.name查看当前系统
os.getcwd()查看当前目录
os.listdir(路径)查看路径下文件
os.path.isfile(''路径下的文件'')查看是否是文件
os.path.isdir(同上)查看是否是文件夹
os.path.isabs(路径) 查看是否是绝对路径
设置绝对路径:os.path.abspath(文件名)
重命名 os.rename('被修改的路径加文件','新路径新名字')
创建空文件 os.mknod(文件名)
同理创建目录 os.mkdir(目录名)
创建多级目录os.makedirs(路径)
删除目录os.removedirs(r'删除的路径')
删除文件os.remove('文件名')
os.getpid()获取进程号
修改当前目录:修改到home目录下os.chdir(r'/home/')
将目录与文件分离出来os.path.split(r'/home/test.txt')
结果为('/home','test.txt')
也可以分别获取文件或文件夹:
获取文件夹:os.path.dirname(路径)
获取文件:os.path.basename(路径)
合并目录文件:os.path.join(r'要合并的路径','要合并的文件')
修改用户输入错误路径:dir = r'c:/work\123.txt'
os.path.normpath(dir) 修改后为:c:\\work\\123.txt
获取系统指令内容,保存到变量中
test=os.popen('ifconfig').read()
函数传参:
要指定传入的数据类型是元组,则在参数前加*
def fun(*a)
return a
fun(1,5,9)
返回元组(1,5,9)
同理如果传入数据为字典,在参数前加**
def fun2(**a)
return a
fun2(python=1,hello=2)
返回:{'python':1 , 'hello':2}
但是如果传入参数是列表,例如
def f(x,li=[]):
for i in range(x):
li.append(i*i)
print(li)
f(4)
f(5)
打印的结果为
[0, 1, 4, 9]
[0, 1, 4, 9, 0, 1, 4, 9, 16]
这样打印的原因是列表为参数的时候,列表即为全局变量,因为在函数预处理时候已经为他分配内存空间,所以打印的内容就如上所示
函数内部定义全局变量,定义时无法赋值
def fun(a,b):
global x
x = 3
return a*b*x
print(fun(20,30))
z=x+5
print(z)
模块导入
导入所有函数: from 模块 import * 这样在编写代码中可以直接利用模块内的函数,而不用再去模块.函数
内置模块:
- sys模块
sys.platform 检查系统
sys.argv[0] 路径本身
sys.argv[1] 获取程序第一个参数 [2]第二个参数
也可以进行参数 sys.argv[1:]可以获取多个参数
- datatime模块
获取当前时间:now=datatime.datetime.now()
输出时间方式:now.strftime("%d-%m-%Y %I:%M:%S") 大Y表示4位数年份,小y两位数,I表示24小时制 H表示12小时制
- optparse
关于这个模块后面会专门为此模块写出解释,实例进行学习
- hashlib
a=hashlib.md5() 将md5函数指针赋予a
a.update('python'.encode('utf-8'))
print(a.hexdigest()) 打印出来的就是python的md5值
编写一个md5破解工具(练习语法)