函数使用(六)

shutil

  • 拷贝普通文件

    1
    2
    3
    4
    5
    6
    # 拷贝普通文件
    import shutil

    shutil.copy('123.py', 'test.py')
    shutil.copy('123.py', 'c')
    shutil.copy('123.py', 'c/test.py')
  • 拷贝目录文件

    1
    2
    # 拷贝目录文件
    shutil.copytree('c', 'd')
  • 移动文件,可以是目录文件

    1
    2
    3
    # 移动文件,可以是目录文件
    shutil.move('123.py', '456.py')
    shutil.move('c', 'd')
  • 删除目录

    1
    2
    # 删除目录,当目录中有其它文件或目录时也可以删除
    shutil.rmtree('d')

time

  • sleep

    休眠指定的秒数(可以是小数)

    1
    2
    3
    import time

    time.sleep(0.5)
  • time

    返回当前时间的时间戳,从1970-01-01 00:00:00到此刻的秒数

    1
    2
    3
    4
    import time

    # 返回当前时间的时间戳,从1970-01-01 00:00:00到此刻的秒数
    print(time.time()) # 1637027810.5877886
  • localtime

    将一个时间戳转换为 time.struct_time 类型的对象(类似于元组)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import time

    # 将一个时间戳转换为一个类似于元组的对象,不指定时间戳转换当前时间
    locals_time = time.localtime()
    # time.struct_time(tm_year=2021, tm_mon=11, tm_mday=16, tm_hour=10, tm_min=1, tm_sec=29, tm_wday=1, tm_yday=320, tm_isdst=0)
    # 年、月、日、时、分、秒、星期(0-6)、今年的第几天、夏令时
    print(locals_time)
    # 可以通过下标获取元素
    print(locals_time[0]) # 2021
    # 也可以通过名称(对象的成员属性)
    print(locals_time.tm_year) # 2021
    print(type(locals_time)) # <class 'time.struct_time'>
  • mktime

    根据一个元组形式的时间生成一个时间戳

    1
    2
    3
    4
    5
    6
    7
    import time

    # 将元组形式的时间转换为时间戳
    new_time1 = time.mktime(time.localtime())
    new_time2 = time.mktime((2019, 3, 26, 15, 38, 25, 1, 85, 0))
    print(new_time1) # 1637028698.0
    print(new_time2) # 1553585905.0
  • strftime

    将一个元组形式的时间格式化为字符串,不传时间默认转换当前时间

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import time

    # 时间格式化显示
    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) # 2021-11-16 10:30:27
    print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2021-11-16 10:30:27
    print(time.strftime('%Y-%m-%d')) # 2021-11-16
    print(time.strftime('%H:%M:%S')) # 10:30:27
    print(time.strftime('%D')) # 11/16/21

    '''
    %Y:2018 年(4位)
    %y:18 年(2位)
    %m:月
    %d:日
    %D:03/26/19
    %H:时(24小时制)
    %I:时(12小时制)
    %M:分
    %S:秒
    %w:星期(1-7)
    %W:本周是今年的第几周
    '''
  • gmtime

    将一个时间戳转换为元组形式,不传默认转换当前时间

    1
    2
    3
    4
    5
    6
    import time

    # 将一个时间戳转换为元组形式
    gm_time = time.gmtime()
    # time.struct_time(tm_year=2021, tm_mon=11, tm_mday=16, tm_hour=2, tm_min=40, tm_sec=44, tm_wday=1, tm_yday=320, tm_isdst=0)
    print(gm_time)
  • asctime

    1
    2
    3
    4
    5
    import time

    # 将一个元组形式的时间转换为标准格式时间,不传参数转换当前时间
    print(time.asctime()) # Tue Nov 16 10:42:47 2021
    print(time.asctime(time.localtime())) # Tue Nov 16 10:42:47 2021
  • timezone

    1
    2
    3
    4
    import time

    # 0时区减去当前时区的秒数
    print(time.timezone) # -28800

calendar

  • 日历

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import calendar

    # 获取某一年的日历
    c = calendar.calendar(2019, w=3, l=1, m=2, c=10)
    # print(c)

    # 获取指定年指定月的日历
    print(calendar.month(2019, 3))

    # 判断一个年份是否是闰年
    print(calendar.isleap(2008)) # True

    # 判断[起始, 结束)之间闰年的个数
    print(calendar.leapdays(2000, 2019)) # 5

练习:

1
试着学习datetime模块