python shutil与glob模块入门教程
在python编程中,shutil与glob模块用途广泛,可用于目录与文件的拷贝,以及目录与文件匹配与查找,经常会用到,建议了解掌握。
第一部分,shutil模块
shutil.copyfile(src, dst): 拷贝文件
shutil.copytree(srcDir, dstDir) : 递归拷贝目录
shutil.rmtree('dir') : 递归删除文件夹
shutil.move('old','new') :修改文件和目录名称
shutil.copymode(src,dst) :这个是复制权限
shutil.copy2(src,dst) : 这个函数相当于cp -p src dst
shutil.copystat(src,dst) : 这个能复制权限,修改时间,标志,最后访问时间。
第二部分,glob模块
glob.glob(pathname) : pathname定义了文件路径匹配规则,路径可以是绝对路径也可以是相对路径,返回一个匹配列表。
缺点:只支持简单shell通配符,不能进行递归
例子:
import glob
print glob.glob('*.gz') #查找当前目录的gz文件
输出结果:
['alternatives.log.2.gz', 'dpkg.log.2.gz','syslog.2.gz', 'dpkg.log.3.gz', 'alternatives.log.3.gz', 'auth.log.3.gz','syslog.3.gz', 'syslog.4.gz', 'auth.log.4.gz', 'pm-powersave.log.2.gz','kern.log.4.gz', 'kern.log.2.gz', 'dmesg.1.gz', 'jockey.log.3.gz','syslog.6.gz', 'pm-powersave.log.3.gz', 'jockey.log.2.gz', 'syslog.7.gz','syslog.5.gz', 'dmesg.2.gz', 'kern.log.3.gz', 'dmesg.4.gz', 'dmesg.3.gz','auth.log.2.gz']
glob.iglob(pathname):跟上面的glob一样,但是这个是返回一个迭代器
例子:
import glob
gz = glob.iglob('*.gz')
for i in gz :
printi
输出结果:
alternatives.log.2.gz
dpkg.log.2.gz
syslog.2.gz
dpkg.log.3.gz
alternatives.log.3.gz
auth.log.3.gz
syslog.3.gz
syslog.4.gz
auth.log.4.gz
pm-powersave.log.2.gz
kern.log.4.gz
kern.log.2.gz
dmesg.1.gz
jockey.log.3.gz
syslog.6.gz
pm-powersave.log.3.gz
jockey.log.2.gz
syslog.7.gz
syslog.5.gz
dmesg.2.gz
kern.log.3.gz
dmesg.4.gz
dmesg.3.gz
auth.log.2.gz