【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, 
st_nlink=1, st_uid=30052, st_gid=30053, st_size=2339, st_atime=1516591113,
st_mtime=1520503222, st_ctime=1520503222) >>> os.stat('b') posix.stat_result(st_mode=33200, st_ino=688130, st_dev=2052L,
st_nlink=1, st_uid=30052, st_gid=30053, st_size=2256, st_atime=1520503688,
st_mtime=1520503837, st_ctime=1520503937) >>> shutil.copystat('a', 'b') >>> os.stat('a') posix.stat_result(st_mode=33200, st_ino=163856401, st_dev=2052L,
st_nlink=1, st_uid=30052, st_gid=30053, st_size=2339, st_atime=1516591113,
st_mtime=1520503222, st_ctime=1520503222) >>> os.stat('b') posix.stat_result(st_mode=33200, st_ino=688130, st_dev=2052L,
st_nlink=1, st_uid=30052, st_gid=30053, st_size=2256, st_atime=1516591113,
st_mtime=1520503222, st_ctime=1520504061)
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"), 
('tar', 'uncompressed tar file'), ('zip', 'ZIP 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, 
tm_min=2, tm_sec=16, tm_wday=4, tm_yday=68, tm_isdst=0) >>> time.asctime(time.localtime()) 'Fri Mar 9 09:02:18 2018'
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, 
tm_min=10, tm_sec=50, tm_wday=4, tm_yday=68, tm_isdst=0) >>> time.localtime() time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9, tm_hour=9,
tm_min=10, tm_sec=51, tm_wday=4, tm_yday=68, tm_isdst=0)
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, 
tm_min=20, tm_sec=15, tm_wday=4, tm_yday=68, tm_isdst=-1)
time() 返回当前时间戳
>>> time.time()
1520558568.567015

 

posted @ 2018-03-08 17:36  aclove  阅读(90)  评论(0)    收藏  举报