本地做那种网站好一些大连网站建设 领超最好
news/
2025/9/28 12:19:13/
文章来源:
本地做那种网站好一些,大连网站建设 领超最好,施工企业会计核算实务,萝岗电子商务网站建设一、简述 我们在日常处理文件时#xff0c;经常用到os模块#xff0c;但是有的时候你会发现#xff0c;像拷贝、删除、打包、压缩等文件操作#xff0c;在os模块中没有对应的函数去操作#xff0c;下面我们就来讲讲高级的 文件、文件夹、压缩包 处理模块#xff1a;shuti…一、简述 我们在日常处理文件时经常用到os模块但是有的时候你会发现像拷贝、删除、打包、压缩等文件操作在os模块中没有对应的函数去操作下面我们就来讲讲高级的 文件、文件夹、压缩包 处理模块shutil 二、模块详解 1、shutil.copyfileobj(fsrc, fdst) 功能把一个文件的内容拷贝到另外一个文件中可以是部分文件内容。 with open(f_old,r,encodingutf-8) as f1,\open(f_new,w,encodingutf-8) as f2:shutil.copyfileobj(f1,f2) #拷贝文件的内容注经过试验目前试验不出可以拷贝部分文件内容先忘记可以拷贝部分内容把。 2、shutil.copyfile(src, dst) 功能拷贝文件但是不拷贝所有权限 shutil.copyfile(f_old,f_new) #同一目录下拷贝文件
shutil.copyfile(rD:\PycharmProjects\pyhomework\day5\shutil_mode\shutil_mod\f_old,rd:\f_new) #通过绝对路径拷贝文件3、shutil.copymode(src, dst) 功能拷贝文件的文件权限 [rootwhtest137 ~]# ll
total 8
-rwxr-xr-x 1 root root 0 Apr 1 16:05 zhangqigao #有执行权限
-rw-r--r-- 1 whtest whtest 0 Apr 1 16:06 zhangqigao_old #没有执行权限import os,shutilos.chdir(/root)
#拷贝zhangqigao_old权限给zhangqigaoshutil.copymode(zhangqigao_old,zhangqigao)
[rootwhtest137 ~]# ll
total 8
-rw-r--r-- 1 root root 0 Apr 1 16:05 zhangqigao # 获得跟zhangqigao_old一样的文件权限
-rw-r--r-- 1 whtest whtest 0 Apr 1 16:06 zhangqigao_old4、shutil.copystat(src, dst) 功能拷贝文件的状态信息如mode bits, atime, mtime, flags #两个文件的创建时间和用户权限都不同
[rootjenkins_sh temp]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 1 17:31 zhangqigao
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old
#python操作import os,shutil os.chdir(/temp)
#zhangqigao 这个文件状态os.stat(zhangqigao)
posix.stat_result(st_mode33188, st_ino76808194, st_dev2053L, st_nlink1,
st_uid0, st_gid0, st_size0, st_atime1491039109, st_mtime1491039109,
st_ctime1491039109)
#zhangqigao_old的文件状态os.stat(zhangqigao_old)
posix.stat_result(st_mode33261, st_ino76808195, st_dev2053L, st_nlink1,
st_uid101, st_gid103, st_size0, st_atime1491035188, st_mtime1491035188,
st_ctime1491035242)
#拷贝zhangqigao_old 文件状态给zhangqigao 文件shutil.copystat(zhangqigao_old,zhangqigao)
# 拷贝后,zhangqigao文件的文件状态os.stat(zhangqigao)
posix.stat_result(st_mode33261, st_ino76808194, st_dev2053L, st_nlink1,
st_uid0, st_gid0, st_size0, st_atime1491035188, st_mtime1491035188,
st_ctime1491039237)#操作后两个文件比较
[rootjenkins_sh temp]# ll
total 0
-rwxr-xr-x 1 root root 0 Apr 1 16:26 zhangqigao #状态包括文件权限文件创建的时间等不包括文件所属用户和用户组
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old5、shutil.copy(src, dst) 功能拷贝文件和文件的权限 #拷贝前
[rootjenkins_sh temp]# ll
total 0
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old
#拷贝中import os,shutilos.chdir(/temp)shutil.copy(zhangqigao_old,zhangqigao)
#拷贝结果输出
[rootjenkins_sh temp]# ll
total 0
-rwxr-xr-x 1 root root 0 Apr 1 17:42 zhangqigao #拷贝了zhangqigao_old文件和文件权限
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old6、shutil.copy2(src, dst) 功能拷贝文件和文件的状态 #拷贝前
[rootjenkins_sh temp]# ll
total 0
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old
#拷贝中import os,shutilos.chdir(/temp)shutil.copy2(zhangqigao_old,zhangqigao)
#拷贝后
[rootjenkins_sh temp]# ll
total 0
-rwxr-xr-x 1 root root 0 Apr 1 16:26 zhangqigao #拷贝了zhangqigao_old的文件和状态
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old7、shutil.copytree(src, dst) 功能递归的去拷贝文件相当于cp -r #操作前
[rootjenkins_sh temp]# ll
total 4
drwxr-xr-x 2 root root 4096 Apr 1 17:53 xiaogao
[rootjenkins_sh temp]# cd xiaogao/;ll
total 0
-rwxr-xr-x 1 root root 0 Apr 1 16:26 zhangqigao
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old
#操作中import os,shutilos.chdir(/temp)shutil.copytree(xiaogao,gaogao) #递归拷贝
#操作结果
[rootjenkins_sh temp]# ll
total 8
drwxr-xr-x 2 root root 4096 Apr 1 17:53 gaogao #拷贝成功
drwxr-xr-x 2 root root 4096 Apr 1 17:53 xiaogao
[rootjenkins_sh temp]# cd gaogao/;ll
total 0
-rwxr-xr-x 1 root root 0 Apr 1 16:26 zhangqigao
-rwxr-xr-x 1 root root 0 Apr 1 16:26 zhangqigao_old9、shutil.rmtree(path[, ignore_errors[, onerror]]) 功能递归的去删除文件相当于rm -fr #操作前
[rootjenkins_sh temp]# ll
total 4
drwxr-xr-x 2 root root 4096 Apr 1 17:53 xiaogao
[rootjenkins_sh temp]# cd xiaogao/;ll
total 0
-rwxr-xr-x 1 root root 0 Apr 1 16:26 zhangqigao
-rwxr-xr-x 1 jenkins jenkins 0 Apr 1 16:26 zhangqigao_old
#操作中import os,shutilos.chdir(/temp)shutil.rmtree(xiaogao)
#操作结果
[rootjenkins_sh temp]# ll
total 0 #成功删除xiaogao目录10、shutil.move(src, dst) 功能递归的去移动文件 相当于:mv #操作前
[rootjenkins_sh temp]# ll
total 4
drwxr-xr-x 2 root root 4096 Apr 1 18:07 xiaogao
-rw-r--r-- 1 root root 0 Apr 1 18:07 zhangqigao
#操作中import shutilshutil.move(/temp/zhangqigao,/temp/xiaogao) #把文件移到目录中
#操作结果
[rootjenkins_sh xiaogao]# ll
total 4
drwxr-xr-x 2 root root 4096 Apr 1 18:08 xiaogao
[rootjenkins_sh temp]# cd xiaogao/;ll
total 0
-rw-r--r-- 1 root root 0 Apr 1 18:07 zhangqigao三、压缩解压缩 1、shutil.make_archive((base_name, format, root_dirNone,base_dirNone,verbose0,dry0,ownerNone,groupNone,loggerNone) 功能创建压缩包并且返回文件路径例如zip,tar base_name : 压缩包的文件名也可以是压缩包的路径。只是文件名则保存当前目录否则保存到指定路径。format压缩包种类ziptarbztargztarroot_dir需要压缩的文件夹路径(默认当前路径)owner用户默认当前用户group组默认当前组logger用于记录日志通常是logging.Logger对象 #指定路径import shutil
#把/temp下的xiaogao文件以zip压缩格式压缩并且存放在/temp/zhangqigao目录下/temp/zhangqigao/xiaogao 中的xiaogao是压缩名shutil.make_archive(/temp/zhangqigao/xiaogao,zip,/temp/xiaogao)
/temp/zhangqigao/xiaogao.zip #压缩结果
#默认当前路径shutil.make_archive(xiaogao,zip,/temp/xiaogao)
/temp/xiaogao.zip2、zipfile 功能以zip的形式压缩文件注意了这个只能压缩文件不能压缩目录如果压缩也只能显示空目录。 import zipfile# 压缩
z zipfile.ZipFile(laxi.zip, w)
z.write(a.log) #写入
z.write(data.data)
z.close() #关闭# 解压
z zipfile.ZipFile(laxi.zip, r)
z.extractall() #解压
z.close()3、tarfile 功能以tar的形式打包文件这边能打包所以文件包括目录 import tarfile# 打包
tar tarfile.open(your.tar,w)#不加arcname打的是绝对路径也就是/Users/wupeiqi/PycharmProjects/bbs2.zip加这个表示你在your.tar中加什么文件就写什么文件名也就是bbs2.zip
tar.add(/Users/wupeiqi/PycharmProjects/bbs2.zip, arcnamebbs2.zip)
tar.add(/Users/wupeiqi/PycharmProjects/cmdb.zip, arcnamecmdb.zip)
tar.close()# 解压
tar tarfile.open(your.tar,r)
tar.extractall() # 可设置解压地址
tar.close()小结 tar打包不会压缩文件所以文件的大小没有变zip才会压缩所以压缩后的文件大小会变小一般情况下是先打包再压缩 转载于:https://www.cnblogs.com/zhangqigao/articles/6655910.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920624.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!