python shutil 删除怎么发音

& & python模块介绍-shutil 高级文件操作& & 目录& & 项目简介...1& & 简介:...2& & 拷贝文件...2& & 拷贝文件元数据...6& & 压缩解压...8项目简介& & Python中文库https:/……
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
论文写作技巧
上一篇:下一篇:
相关经验教程python- shutil 高级文件操作_python_ThinkSAAS
python- shutil 高级文件操作
python- shutil 高级文件操作
内容来源: 网络
shutil模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。
注意即便是更高级别的文件复制函数(shutil.copy(),shutil.copy2())也不能复制所有文件的元数据。这意味着在POSIX平台上,文件的所有者和组以及访问控制列表都将丢失。在Mac OS中资源fork和其他元数据无法使用。这意味着资源将丢失,文件类型和创建者代码将不正确。在Windows上,文件所有者,ACL和备用数据流不会被复制。
功能:高级文件操作。类型:标准模块相关模块:
os 标准模块。zipfile 标准模块。tarfile 标准模块。
拷贝文件
shutil.copyfile(src, dst):复制文件内容(不包含元数据)从src到dst。 DST必须是完整的目标文件名;拷贝目录参见shutil.copy()。如果src和dst是同一文件,就会引发错误shutil.Error。dst必须是可写的,否则将引发异常IOError。如果dst已经存在,它会被替换。特殊文件,例如字符或块设备和管道不能使用此功能,因为copyfile会打开并阅读文件。 src和dst的是字符串形式的路径名。
from shutil import *
from glob import glob
print &BEFORE:&, glob(&shutil_copyfile.*&)
copyfile(&shutil_copyfile.py&, &shutil_copyfile.py.copy&)
print &AFTER:&, glob(&shutil_copyfile.*&)
执行结果:
# python shutil_copyfile.py
BEFORE: [&shutil_copyfile.py&]
AFTER: [&shutil_copyfile.py&, &shutil_copyfile.py.copy&]
# python shutil_copyfile.py
BEFORE: [&shutil_copyfile.py&, &shutil_copyfile.py.copy&]
copyfile()调用了底函数层copyfileobj()。
shutil.copyfileobj(fsrc, fdst[, length]):复制文件内容(不包含元数据)从类文件对象src到类文件对dst。可选参数length指定缓冲区的大小,负数表示一次性读入。默认会把数据切分成小块拷贝,以免占用太多内存。注意:拷贝是从fsrc的当前文件开始。
from shutil import *
from StringIO import StringIO
import sys
class VerboseStringIO(StringIO):
def read(self, n=-1):
next = StringIO.read(self, n)
print &read(%d) bytes& % n
return next
lorem_ipsum = &&&Lorem ipsum dolor sit amet, consectetuer adipiscing
Vestibulum aliquam mollis dolor. Donec vulputate nunc ut diam.
Ut rutrum mi vel sem. Vestibulum ante ipsum.&&&
print &Default:&
input = VerboseStringIO(lorem_ipsum)
output = StringIO()
copyfileobj(input, output)
print &All at once:&
input = VerboseStringIO(lorem_ipsum)
output = StringIO()
copyfileobj(input, output, -1)
print &Blocks of 256:&
input = VerboseStringIO(lorem_ipsum)
output = StringIO()
copyfileobj(input, output, 256)
执行结果:
# python shutil_copyfileobj.py
read(16384) bytes
read(16384) bytes
All at once:
read(-1) bytes
read(-1) bytes
Blocks of 256:
read(256) bytes
read(256) bytes
shutil.copy(src, dst):复制文件src到文件或目录dst。如果dst是目录,使用src相同的文件名创建(或覆盖),权限位也会复制。src和dst的是字符串形式的路径名。
from shutil import *
os.mkdir(&example&)
print &BEFORE:&, os.listdir(&example&)
copy(&shutil_copy.py&, &example&)
print &AFTER:&, os.listdir(&example&)
执行结果:
# python shutil_copy.py
BEFORE: []
AFTER: [&shutil_copy.py&
shutil.copy2(src, dst):类似shutil.copy,元数据也复制,实际上先调用shutil.copy,然后使用copystat。这类似于Unix命令cp -p。
from shutil import *
import time
def show_file_info(filename):
stat_info = os.stat(filename)
print & Mode
:&, stat_info.st_mode
print & Created :&, time.ctime(stat_info.st_ctime)
print & Accessed:&, time.ctime(stat_info.st_atime)
print & Modified:&, time.ctime(stat_info.st_mtime)
os.mkdir(&example&)
print &SOURCE:&
show_file_info(&shutil_copy2.py&)
copy2(&shutil_copy2.py&, &example&)
print &DEST:&
show_file_info(&example/shutil_copy2.py&)
执行结果:
# python shutil_copy2.py
Created : Fri Dec
6 10:45:52 2013
Accessed: Fri Dec
6 11:49:40 2013
Modified: Mon Feb 21 01:37:46 2011
Created : Fri Dec
6 11:51:58 2013
Accessed: Fri Dec
6 11:49:40 2013
Modified: Mon Feb 21 01:37:46 2011
shutil.ignore_patterns(*patterns) 为copytree的辅助函数,提供glob功能,示例:
from shutil import copytree, ignore_patterns
copytree(source, destination, ignore=ignore_patterns(&*.pyc&, &tmp*&))
拷贝文件元数据
当由UNIX下创建文件默认基于umask设置权限,copymode()可以复制权限。
shutil.copymode(src, dst):从SRC复制权限位到DST。该文件的内容,所有者和组不受影响。src和dst的是字符串形式的路径名。
from shutil import *
from commands import *
with open(&file_to_change.txt&, &wt&) as f:
f.write(&content&)
os.chmod(&file_to_change.txt&, 0444)
print &BEFORE:&
print getstatus(&file_to_change.txt&)
copymode(&shutil_copymode.py&, &file_to_change.txt&)
print &AFTER :&
print getstatus(&file_to_change.txt&)
执行结果:
# ./shutil_copymode.py
-r--r--r-- 1 root root 7 Dec
7 17:35 file_to_change.txt
-rwxrwxrwx 1 root root 7 Dec
7 17:35 file_to_change.txt
要想拷贝文件时间戳,需要copystat。
shutil.copystat(src, dst): 从src复制权限位,最后访问时间,最后修改时间,flag到dst。该文件的内容,所有者和组不受影响。 src和dst的是给定的字符串路径名。
from shutil import *
import time
def show_file_info(filename):
stat_info = os.stat(filename)
print & Mode
:&, stat_info.st_mode
print & Created :&, time.ctime(stat_info.st_ctime)
print & Accessed:&, time.ctime(stat_info.st_atime)
print & Modified:&, time.ctime(stat_info.st_mtime)
with open(&file_to_change.txt&, &wt&) as f:
f.write(&content&)
os.chmod(&file_to_change.txt&, 0444)
print &BEFORE:&
show_file_info(&file_to_change.txt&)
copystat(&shutil_copystat.py&, &file_to_change.txt&)
print &AFTER:&
show_file_info(&file_to_change.txt&)
执行结果:
# python shutil_copystat.py
Created : Mon Dec
9 10:07:26 2013
Accessed: Sat Dec
7 17:35:08 2013
Modified: Mon Dec
9 10:07:26 2013
Created : Mon Dec
9 10:07:26 2013
Accessed: Mon Dec
9 10:06:14 2013
Modified: Mon Feb 21 01:37:46 2011
压缩解压
2.7以后的版本提供了压缩和解压功能。
shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]]):创建归档文件(如ZIP或TAR),返回其名字。base_name文件名。format压缩格式,“zip”, “tar”, “bztar” or “gztar”。root_dir压缩的根目录。base_dir开始压缩的目录。root_dir 和 base_dir默认都是当前目录。所有者和组默认为当前用户和组;logger为logging.Logger的实例。
shutil.get_archive_formats():返回支持的格式列表。默认支持:
gztar:gzip压缩的tar文件bztar:bzip2格式的tar文件tar:未压缩的tar文件zip:ZIP文件
In [3]: shutil.get_archive_formats()
[(&bztar&, "bzip2&ed tar-file"),
(&gztar&, "gzip&ed tar-file"),
(&tar&, &uncompressed tar file&),
(&zip&, &ZIP file&)]
通过使用register_archive_format()可以增加新格式。
shutil.register_archive_format(name, function[, extra_args[, description]]):注册一个文件格式。不常用。
shutil.unregister_archive_format(name):移除文件格式,不常用。
压缩实例:
from shutil import make_archive
archive_name = os.path.expanduser(os.path.join(&~&, &myarchive&))
root_dir = os.path.expanduser(os.path.join(&~&, &.ssh&))
make_archive(archive_name, &gztar&, root_dir)
上面代码会在当前用户目录生成压缩了.ssh目录的文件。
# tar tzvf myarchive.tar.gz
dr-x------ root/root
-rw------- root/root
-06 20:01 ./id_rsa
-rw-r--r-- root/root
20:01 ./id_rsa.pub
-r-------- root/root
-06 09:41 ./authorized_k
转自:
参考资料
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(3732)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'python 复制文件 shutil',
blogAbstract:'&复制文件&import&&shutilimport&&osimport&&os.pathsrc&=&&&d:\\\\download\\\\test\\\\myfile1.txt&&&dst&=&&&d:\\\\download\\\\test\\\\myfile2.txt&&&dst2&=&&&d:/download/test/测试文件夹.txt&&&dir1&=&os.path.dirname(src)print&(&&&dir1&%s&&&%&dir1)if&(os.path.exists(src)&==&False):&&&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Python&标准库&-&&Shutil模块&-&&一些复制文件和文件夹的函数
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 python shutil 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信