【python】【内置模块】【四】【shutil time】
8. shutil
| 变量/函数 | 含义 | 样例 |
| copyfileobj() | 通过文件对象拷贝内容,不拷贝权限 |
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 2558 Mar 8 17:34 b
0
>>> shutil.copyfileobj(open('a', 'r'), open('b', 'w'))
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 2339 Mar 8 18:02 b
|
| copyfile() | 通过文件名拷贝,不拷贝权限 |
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 2256 Mar 8 18:08 b
0
>>> shutil.copyfile('a', 'b')
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 2339 Mar 8 18:08 b
|
| copymode() | 拷贝文件权限,不拷贝文件内容 |
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 2256 Mar 8 18:10 b
0
>>> shutil.copymode('a', 'b')
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw-rw---- 1 ****** ****** 2256 Mar 8 18:10 b
0
|
| copystat() | 拷贝文件状态信息 |
>>> os.stat('a') posix.stat_result(st_mode=33200, st_ino=163856401, st_dev=2052L, |
| copy() | 复制文件内容和权限,dst可以是目录 |
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 2 Mar 8 19:01 b
0
>>> shutil.copy('a', 'b')
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw-rw---- 1 ****** ****** 2339 Mar 8 19:02 b
|
| copy2() | 复制文件内容、权限和状态信息,dst可以是目录 |
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw------- 1 ****** ****** 4 Mar 8 19:04 b
0
>>> shutil.copy2('a', 'b')
>>> os.system('ls -al a b')
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 a
-rw-rw---- 1 ****** ****** 2339 Mar 8 18:00 b
0
|
| copytree() | 使用copy2函数递归复制目录, dst必须不存在 |
>>> os.system('tree -L 3 ma')
ma
└── ma1
└── ma11
1 directory, 1 file
0
>>> shutil.copytree('ma', 'mb')
>>> os.system('tree -L 3 mb')
mb
└── ma1
└── ma11
1 directory, 1 file
0
|
| move() | 移动文件或目录,类似mv命令 |
>>> shutil.move('a', 'b')
|
| rmtree() | 递归删除文件或目录 |
>>> shutil.rmtree('ma')
>>> os.system('ls -al ma')
ls: cannot access ma: No such file or directory
512
|
| make_archive() | 压缩文件 |
>>> os.system('tree -L 2 ma')
ma
└── ma1
└── ma11
1 directory, 1 file
0
>>> shutil.make_archive('test', 'zip', 'ma')
'/data/******/tmp/test.zip'
>>> os.system('unzip test.zip')
Archive: test.zip
inflating: ma1/ma11
0
|
| get_archive_formats() | 可以支持的压缩格式 |
>>> shutil.get_archive_formats() [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), |
| register_archive_format(name, function) | 注册压缩格式和函数 | |
| unregister_archive_format(name) | 取消注册 |
9. time
| 变量/函数 | 含义 | 样例 |
| asctime() | 接收1-9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的参数,返回一个可读性较强的字符串 |
>>> import time >>> time.localtime() time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, tm_hour=9, |
| clock() | 函数以浮点数计算的秒数返回当前的CPU时间 |
>>> time.clock()
0.01
|
| ctime() | 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式,它的作用相当于 asctime(localtime(secs)) |
>>> time.ctime()
'Fri Mar 9 09:07:56 2018'
>>> time.ctime(time.time())
'Fri Mar 9 09:07:56 2018'
|
| gmtime() | 将一个时间戳转换为UTC时区 |
>>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, tm_hour=1, |
| localtime() | 将一个时间戳转换为本地时间,与UTC时区相差8小时 |
>>> time.gmtime(time.time())
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, tm_hour=1,
tm_min=12, tm_sec=26, tm_wday=4, tm_yday=68, tm_isdst=0)
>>> time.localtime(time.time())
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, tm_hour=9,
tm_min=12, tm_sec=27, tm_wday=4, tm_yday=68, tm_isdst=0)
|
| mktime() | 与gmtime()和localtime()执行相反的操作 |
>>> time.time()
1520558083.563002
>>> time.mktime(time.localtime())
1520558083.0
|
| sleep() | 推迟调用线程的运行,单位为秒 |
>>> import time
>>> a = time.time()
>>> time.sleep(5)
>>> print time.time() - a
5.0
|
| strftime() | 接收struc_time,返回格式化字符串 |
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
'2018-03-09 09:20:15'
|
| strptime() | 为strftime()的逆向操作 |
>>> time.strptime('2018-03-09 09:20:15', '%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, tm_hour=9, |
| time() | 返回当前时间戳 |
>>> time.time()
1520558568.567015
|

浙公网安备 33010602011771号