您的位置:首页 > 编程语言 > Python开发

Python基础——文件拷贝(从手动实现到shutil的使用)

2015-12-01 13:01 656 查看
先上一段代码:

def copyfileobj(fsrc, fdst, length=16*1024):
# fsrc、fdst,均是file-like object
while 1:
buf = fsrc.read(length)
if not buf:
break;
fdst.write(buf)


这样粗陋原始(raw)的接口并不使用,我们对之进行进一步的封装,使之能够接收文件路径名(字符串信息):

def copyfile(src, dst):
if os.path.samefile(src, dst):
raise Exception('{} and {} are the same file'.format(src, dst))
if os.path.isdir(dst):
dst = os.path.join(dst, os.path.basename(src))
with open(src, 'rb') as fp1, open(dst, 'wb') as fp2:
copyfileobj(fp1, fp2)


copyfile('./test1.txt', './test2.txt')


以上代码没有任何难度。

不要重复制造轮子,如果你的轮子不比现成的轮子更圆,转得更快,拷贝文件,我们有现成的模块可以调用:

import shutil
shutil.copy(src, dst)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python