#!/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")
# -*- 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")