day5

#######调用函数#########
1.定义:
模块:用来从逻辑上组织python代码(变量,函数,累,路基:实现一个功能),
本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)

2.导入方法
import module_name
import module_name,module2_name
from module_lzq import *
from module_lzq import m1,m2,m3
from module_lzq imoprt logger as logger_lzq

3.import本质(路径搜索和搜索路径)
导入模块的本质就是把python文件解释一遍
(import test test='tese.py all code')
(from test import name name='code')
import module_name---------->module_name.py------->moudule_name.py的路径---->sys.path
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#sys.path.append() #添加到默认路径
#sys.path.insert() #有重复则插入
导入包的本质就是执行该包下的__init__.py文件

4.导入优化
form import_test import test #as ...

5.模块的分类:
a:标准库
b:开源模块
c:自定义模块

标准库:
1.time与datatime
time.struct_time
time.clock() #返回处理器时间,3.3开始已经废弃,改成了time.process_time()测量处理器运算时间,不包括sleep
time.altzone #返回与utc时间的时间差,以秒计算
time.asctime() #返回时间格式“Sat Aug 19 11:14:16 2018
time.ctime() #返回时间格式“Sat Aug 19 11:14:16 2018
time.time #获取时间戳
time.sleep #睡几秒
time.gmtime #有变量转化为元组;不传变量的时候,转化为UTC时间
time.localtime #转化为本时区时间UTC+8
time.mktime #UTC转化为时间戳
time.strftime #("格式",struct_time)#转化为时间格式年月日时分秒%Y-%m-%d %H %M %S,x
time.strptime #转化为元组("格式化字符串struct_time","格式")
datetime.datetime.now() #当前时间
datetime.date.formtimestamp(time.time()) #时间戳直接转成日期格式2016-08-19
datetime.date.datetime.now()+datetime.timedelta(3) #三天后
random.randint(0,99)#随机0-99的整数
random.randrange(0,100,2) #随机偶数
random.random()#随机浮点数,0-1的区间
random.uniform(1,10)#随机浮点数 ,指定区间
random.choice('dasfa13@%$^')#随机字符
random.sample('fafafa',3)#随机特定三个字符
random.choice(['dasdas','rwggg','tegreg']) #随机字符串
items = [1,2,3,4,5,6,7,8]
random.shuffle(items) #重新洗牌,随机排列

#########随机码生成
#Author:walter
import random

checkcode = ''
for i in range(5):
current = random.randrange(0,5)
if i == current:
temp = chr(random.randrange(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
print(checkcode)


##########os模块,sys模块
#Author:walter
import os ,sys
os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") #改变当前脚本工作目录,相当于shell下cd
os.curdir #返回当前目录:(' .')----当前目录
os.pardir #获取当前目录的父目录字符串名:('..')--当前目录上一级
os.makedirs('dirname1/dirname2') #可生成多层递归目录
os.removedirs('dirname') #若目录为空,则删除,并递归到上一级目录,如若也为空。则删除,以此类推
os.mkdir('dirname') #生成单级目录;相当于shell中的mkdir dirname
os.rmdir('dirname') #删除单集空集目录,若目录不为空则无法删除,报错:相当于shell中的mkdir dirname
os.listdir('dirname') #列出指定目录下所有的文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()#删除一个文件
os.remove("oldname","newname")#重命名文件/目录
os.stat('path/filename') #获取文件、目录信息
os.sep #输出操作系统特定的路径分隔符,win下为“\\”Linux下为“/”
os.linesep #输出当前平台使用的行终止符,win下为“\t\n”,Linux下为“”\n
os.pathsep #输出用于分割文件路径的字符串
os.name #输出字符串指示当前使用平台。win->'nt',Linux-->'posix'
os.system("bash command")#运行shell命令 ,直接显示
os.environ #获取系统环境变量
# os.path.abspath(path) #返回path规范的绝对化路径
# os.path.split(path) #将path分割成目录和文件名二元组返回
# os.path.dirname(path) #返回path目录。其实就是os.path.split(path)的第一个元素
# os.path.basename(path) #返回path最后的文件名。如何path以/或\结尾,那么就会返回空值,及os.path.split(path)的第一个元素
# os.path.exists(path) #如果path存在,返回True;如果path不存在,则返回False
# os.path.isabs(path) #如果path是绝对路径,返回True
# os.path.isfile(path) #如果path是一个存在的文件,则返回True,否则返回False
# os.path.isdir(path) #如果path是一个存在的目录,则返回True,否则返回False
# os.path.join(path1[,path2[]]) #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间
# os.path.getmtime(path) #返回path所指向的文件或者目录的最后修改时间

sys.argv #命令行参数List,第一个元素是程序本身路径
sys.exit(n) #退出程序,正常退出时exit(0)
sys.version #获取Python解释程序的版本信息
sys.maxint #最大的Int值
sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform #返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]



#Author:walter
import shutil

# f1 = open ("记录",encoding = "utf-8")
# f2 = open("笔记1","w",encoding="utf-8")
# shutil.copyfileobj(f1,f2)

shutil.copyfile("笔记1","笔记2") #拷贝文件
#shutil.copymode(src,dst) #仅拷贝权限,内容,组,用户均不变
##shutil.copystat(src, dst) #拷贝状态的信息,包括:mode bits, atime, mtime, flags
#shutil.copy(src, dst) #拷贝文件和权限
#shutil.copy2(src, dst) #拷贝文件和状态信息
#shutil.copytree(src, dst, symlinks=False, ignore=None)
#递归的去拷贝文件 #例如:copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))
#shutil.rmtree(path[, ignore_errors[, onerror]]) #递归的去删除文件
#shutil.move(src, dst) #递归的去移动文件
#shutil.make_archive("shutil_archive_test","zip","G:\py\day5") #压缩
'''
import zipfile
##zipfile 压缩解压
# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close()

# 解压
z = zipfile.ZipFile('laxi.zip', 'r')
z.extractall()
z.close()


import tarfile
##tarfile 压缩解压
# 压缩
tar = tarfile.open('your.tar','w')
tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip')
tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip')
tar.close()

# 解压
tar = tarfile.open('your.tar','r')
tar.extractall() # 可设置解压地址
tar.close()
'''

参考http://www.cnblogs.com/wupeiqi/articles/4963027.html
https://www.cnblogs.com/alex3714/articles/5161349.html



posted @ 2018-08-25 22:53  walter清  阅读(144)  评论(0编辑  收藏  举报