常用模块

  • calendar :和日历相关的模块,获取一年的日历字符串
  • time
  • datetime
  • timeit
  • os
  • shutil
  • zip
  • math
  • string
  • 上述所有模块使用理论上都应该先导入
  • calendar,time,datetime的区别参考中文意思

calendar

# calendar: 获取一年的日历字符串
# 参数
# w = 每个日期之间的间隔字符数
# l = 每周所占用的行数
# c = 每个月之间的间隔字符数
cal = calendar.calendar(2017,w=2,l=2,c=2)
  • isleap: 判断某一年是否闰年:calendar.isleap(2000)
  • leapdays: 获取指定年份之间的闰年的个数:calendar.leapdays(2001, 2018)
  • month获取某个月的日历字符串: calendar.month(2018, 3)
  • monthrange 获取一个月的周几开始即和天数,默认 0-6 表示周一到周天, 回值:元组(周几开始,总天数)
  • w,t = calendar.monthrange(2017, 3)
  • monthcalendar() 返回一个月每周的矩阵列表,一周没有天数的用0填充:calendar.monthcalendar(2018, 3)
  • prcal: print calendar 直接打印日历: calendar.prcal(2018)= print( calendar.calendar(2018))
  • prmonth: 打印月份 calendar.prmonth(2018,1)= print( calendar.month(2018,1))
  • weekday:返回周几对应的数字:calendar.weekday(2018, 3, 26)

time

时间戳 time.time()

- 一个时间表示,根据不同语言,可以是整数或者浮点数
- 是从1970年1月1日0时0分0秒到现在经历的秒数[1970](https://www.cnblogs.com/xingzoudeyishu/p/5400927.html)

- 如果表示的时间是1970年以前或者太遥远的未来,可能出现异常,32位操作系统能够支持到2038年,64位操作系统到2920亿年。

UTC时间

- UTC又称为世界协调时间,以英国的格林尼治天文所在地区的时间作为参考的时间,也叫做世界标准时间。
- 中国时间是 UTC+8 东八区

夏令时

  • 夏令时就是在夏天的时候将时间调快一小时,本意是督促大家早睡早起节省蜡烛! 每天变成25个小时,本质没变还是24小时

时间元组:time.localtime()

- 一个包含时间内容的普通元组

    索引      内容    属性            值
    0       年       tm_year     2015
    1       月       tm_mon      1~12
    2       日       tm_mday     1~31
    3       时       tm_hour     0~23
    4       分       tm_min      0~59
    5       秒       tm_sec      0~61  60表示闰秒  61保留值
    6       周几     tm_wday     0~6
    7       第几天    tm_yday     1~366
    8       夏令时    tm_isdst    0,1,-1(表示夏令时)
  • 时间模块的属性
  • timezone: 当前时区和UTC时间相差的秒数,在没有夏令时的情况下的间隔,东八区的是 -28800
  • altzone 获取当前时区与UTC时间相差的秒数,在有夏令时的情况下,东八区的是 -32400
  • daylight 测当前是否是夏令时时间状态, 0 表示是
  • 常用函数
  • time.time():时间戳
  • time.localtime():时间元组,可以通过点号操作符得到相应的属性元素的内容
  • asctime() 返回元组的正常字符串化之后的时间格式:time.asctime( time.localtime())--Mon Mar 26 20:45:09 2018
  • ctime:简化asctime(),获取的是当前时间
  • mktime(ts):时间元组转换成时间戳:time.mktime(time.localtim())
  • sleep (s)使程序进入睡眠,n秒后继续
  • strptime:将字符串转换成时间元组
    • timeArray = time.strptime("2013-10-10 23:40:00", "%Y-%m-%d %H:%M:%S")
  • strftime:将时间元组转化为自定义的字符串格式
    • time.strftime("%Y年%m月%d日 %H:%M" , time.localtime())
      格式  含义  备注
    

%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24 小时制,00 - 23)
%I 一天中的第几个小时(12 小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12) %M 分钟数(00 - 59)
%p 本地 am 或者 pm 的相应符 注1 %S 秒(01 - 61) 注2 %U 一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周 注3 %w 一个星期中的第几天(0 - 6,0 是星期天) 注3 %W 和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%z 用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)
%% %号本身 ```

datetime模块

  • datetinme提供日期和时间的运算和表示
  • datetime常见属性:
  • datetime.date: 一个连接的日期,提供year, month, day属性-- dt = datetime.date(2018, 3,26)
  • datetime.time: 提供一个理想和的时间, 提供hour, minute,sec,microsec等内容---ds = datetime.time(14,33,55,33)
  • datetime.datetime: 提供日期跟时间的组合
  • datetime.timedelta: 提供一个时间差,时间长度---td = timedelta(year,hours=1)

timeit -时间测量工具

  • timeit(self, number=default_number):
  • timeit(stmt="pass", setup="pass", timer=default_timer,number=default_number, globals=None):
# 利用timeit调用代码,执行100000次,查看运行时间
t1= timeit.timeit(stmt="[i for i in range(1000)]", number=100000 )
# 测量代码c执行100000次运行结果
t2 = timeit.timeit(stmt=c, number=10000)
#实例
 s = 
	def doIt(num):
    for i in range(num):
        print("Repeat for {0}".format(i))
# 执行doIt(num)
# setup负责把环境变量准备好
# 实际相当于给timeit创造了一个小环境
# 在创作的小环境中, 代码执行的顺序大致是
···
def doIt(num):
    .....
    
num = 3

doIt(num)
···
t = timeit.timeit("doIt(num)", setup=s+"num=3", number=10)

os - 操作系统相关

  • 跟操作系统相关,主要是文件操作
  • 于系统相关的操作,主要包含在三个模块里
    • os, 操作系统目录相关
    • os.path, 系统路径相关操作
    • shutil, 高级文件操作,目录树的操作,文件赋值,删除,移动
  • 常用函数: - os.getcwd() 获取当前的工作目录 - os.chdir() 改变当前的工作目录 - os.listdir() 获取一个目录中所有子目录和文件的名称列表 - makedirs() 递归创建文件夹 - system("系统命令") linux下运行系统shell命令 ,返回值:打开一个shell或者终端界面,一般推荐使用subprocess模块代替 - getenv(环境变量) 获取指定的系统环境变量值,返回字符串
  • 常用属性: - os.curdir: curretn dir,当前目录符号.. - os.pardir: parent dir,父亲目录符号. - os.sep: 当前系统的路径分隔符 - windows: "" - linux: "/" - os.linesep: 当前系统的换行符号 - windows: "\r\n" - unix,linux,macos: "\n" - os.name: 当前系统名称 - windows: nt - mac: unix,linux: posix

os.path 模块- 跟路径相关的模块

  • 常用函数:
  • bspath() 将路径转化为绝对路径,返回绝对路径字符串
  • basename(路径) 获取路径中的文件名部分
  • join(路径1,路径2): 将多个路径拼合成一个路径,返回拼接后的字符串
  • split() 将路径切割为文件夹部分和当前文件部分:d,p=op.split()
  • isdir() 检测是否是目录
  • exists() 检测文件或者目录是否存在

shutil 模块

  • 常用函数:

  • shutil.copy(来源路径,目标路径):复制文件,拷贝的同时,可以给文件重命名,返回目标路径

  • shutil.copy2(来源路径,目标路径) :复制文件,保留元数据(文件信息),返回目标路径

  • shutil.copyfile('源路径','目标路径'):将一个文件中的内容复制到另外一个文件当中,返回目标路径

  • shutil.move(源路径,目标路径):移动文件/文件夹,返回值:目标路径

  • 归档和压缩

    • 归档: 把多个文件或者文件夹合并到一个文件当中

      • :shutil.make_archive('归档之后的目录和文件名','后缀','需要归档的文件夹'),返回归档后的路径
      • rst = shutil.make_archive("/home/tlxy/tuling", "zip", "/home/tlxy/dana")
      • 解档:shutil.unpack_archive('归档文件地址','解包之后的地址'),返回解包之后的地址
    • 压缩: 用算法把多个文件或者文件夹无损或者有损合并到一个文件当中:zipfile模块

    • zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])

  • 创建一个ZipFile对象,表示一个zip文件。参数file表示文件的路径或类文件对象(file-like object);参数mode指示打开zip文件的模式,默认值为’r’,表示读已经存在的zip文件,也可以为’w’或’a’,’w’表示新建一个zip文档或覆盖一个已经存在的zip文档,’a’表示将数据附加到一个现存的zip文档中。参数compression表示在写zip文档时使用的压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。

  • ZipFile.getinfo(name): - 获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。将在下面 具体介绍该对象。

  • ZipFile.namelist():获取zip文档内所有文件的名称列表。

  • ZipFile.extractall([path[, members[, pwd]]]) - 解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。

random模块

  • 随机数
  • 所有的随机模块都是伪随机
  • 常用函数
    • random.random(): 获取0-1之间的随机小数
    • random.choice(序列):随机返回序列中的某个值
    • random.shuffle(列表): 随机打乱列表
    • randint(a,b): 返回一个a到b之间的随机整数,包含a和b