day-11

#!/usr/bin/env python
# -*- coding:utf-8 -*-


'''
模块:
1、定义:
模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,模块名:test)
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py),
2、导入方法:
import tom
import tom,test
from tom import *   导入所有模块内容(不建议使用)
from  module_test import test 导入一个模块的多个内容
from  module_test import test as hello修改导入模块信息别名
import kali(kali为目录)导入的则是包
3、import本质(路径搜索和搜索路径)
导入模块的本质就是把python文件解释一遍(import test test='test.py all code')
(from test import m1  m1='code')
imoprt module_name---->module_name.py的路径--->sys.path
导入包的本质就是执行该包下的__init__.py文件
4、导入优化
from  module_test import test
from  module_test import test as hello
5、模块的分类
a:标准库(内置模块)
1、time与datetime
b:开源模块(第三方模块)
c:自定义模块
'''


##模块创建(文件名为:tom)
#name = 'tom'
#def say_hello():
#    print('hello tom')


##模块导入
#import tom
#os.path.abspath(__file__)   #获取当前路径 
#os.path.dirname(os.path.abspath(__file__))  #获取上一层路径


#print(tom.name)
#print(tom.say_hello())


# #包的导入(目录为kali)
#import kali


##__init__.py设置路径(导入本目录下的test1模块)
#from.import test1


'''
a:标准库
1、time与datetime
time.time 获取时间戳(从1970年1月1日0:00开始计时一直到当前时间)
time.time 获取时间戳(从1970年1月1日0:00开始计时一直到当前时间)
time.localtime()(获取当前时间元组)
gmtime:UTC时间
localtime:UTC+8时间
strftime("格式",struct_time)--->"格式化的字符串"
strptime("格式化的字符串","格式")--->struct_time
time.strftime("%Y-%m-%d %H:%M:%S")
'2018-03-22 15:27:41'
time.strptime('2018-03-22 15:27:41',"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=22, tm_hour=15, tm_min=27, tm_s
ec=41, tm_wday=3, tm_yday=81, tm_isdst=-1)
time.localtime()
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=22, tm_hour=15, tm_min=16, tm_s
ec=3, tm_wday=3, tm_yday=81, tm_isdst=0)
'''
'''
random模块
random随机(0-1)浮点数
random.randint()随机整数
random.randrange()
random.choice('')产生随机值
random.sample('',x)随机制定区间值
random.uniform可以制定区间
random.shuffle()洗牌
'''
#利用random模块实现验证码
#import random
#checkcode=''
#for i in range(4):
#    #current = random.randint(1,9)
#    current = random.randrange(0,4)
#    if current == i:
#        tmp = chr(random.randint(65,90))
#    else:
#        tmp = random.randint(0,9)
#    checkcode+=str(tmp)
#print(checkcode)


'''
os模块
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir(r"dirname")  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ('.')
os.pardir  获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("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模块
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]
'''


'''
shutil模块
高级的 文件、文件夹、压缩包 处理模块


shutil.copyfileobj(fsrc, fdst[, length])
将文件内容拷贝到另一个文件中,可以部分内容
shutil.copyfile(src, dst)
拷贝文件
shutil.copymode(src, dst)
仅拷贝权限。内容、组、用户均不变
shutil.copystat(src, dst)
拷贝状态的信息,包括:mode bits, atime, mtime, flags
shutil.copy(src, dst)
拷贝文件和权限
shutil.copy2(src, dst)
拷贝文件和状态信息
shutil.ignore_patterns(*patterns)
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(base_name, format,...)


创建压缩包并返回文件路径,例如:zip、tar


base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
如:www                        =>保存至当前路径
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir: 要压缩的文件夹路径(默认当前目录)
owner: 用户,默认当前用户
group: 组,默认当前组
logger: 用于记录日志,通常是logging.Logger对象
shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:
'''


'''
json模块跨平台数据类型转换
pickle模块python内部数据类型转换
用于序列化的两个模块
json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
'''


'''
 shelve模块
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
'''


'''
hashlib模块  


用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
'''
#import hashlib
#m = hashlib.md5()
#m.update(b'Hello')
#print(m.hexdigest())
#m.update(b"It's me")
#print(m.hexdigest())
#m.update(b"I's been a long time since we spoken...")


#m2 = hashlib.md5()
#m2.update(b"HelloIt's me")
#print(m2.hexdigest())


#import hmac
#h = hmac.new(b"123",b"abc")
#print(h.digest())
#print(h.hexdigest())


'''
re模块
正则表达式
'''
#使用方法
import re
re.match("^t"."tom")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值