Python文件复制

# 写程序实现复制文件的功能
# 要求:
#     1. 源文件路径和目标文件路径需要手动输入
#     2. 要考虑文件关闭的问题
#     3. 要考虑复制超大文件的问题
#     4. 要能复制二进制文件def copy_file():'''此函数实现文件复制功能source_dir:源文件路径target_dir:目标文件路径'''source_dir = input("请输入源文件路径:")target_dir = input("请输入目标文件路径:")try:f = open(source_dir,'rb') try: try: f2 = open(target_dir,'wb') # 可能突然断电或者U盘被拔出了 try: for i in f: f2.write(i) f.close() f2.close() finally: f2.close() except OSError: print("打开写文件失败") return False finally: f.close() except OSError: print("打开读文件失败") return False copy_file()

 下面的是改良之后的版本,避免过多次数的进行磁盘操作

#   1. 写程序实现复制文件功能:
#      要求:
#        1. 源文件路径和目标文件路径需手动输入
#        2. 要考虑关闭文件问题
#        3. 要考虑复制超大文件问题
#        4. 要能复制二进制文件def mycopy(src_file, dst_file):"""此函数的功以实现复制文件src_file : 源文件名dst_file : 目标文件名"""try:fr = open(src_file, "rb")  # fr读文件try:try:fw = open(dst_file, 'wb')  # fw写文件try:while True: data = fr.read(4096) if not data: break fw.write(data) except: print("可能U盘被拔出...") finally: fw.close() # 关闭写文件 except OSError: print("打开写文件失败") return False finally: fr.close() # 关闭读文件 except OSError: print("打开读文件失败") return False return True s = input("请输入源文件路径名: ") d = input("请输入目标文件路径名: ") if mycopy(s, d): print("复制文件成功") else: print("复制文件失败")

下面是with语句改写后的代码:

#   1. 写程序实现复制文件功能:
#      要求:
#        1. 源文件路径和目标文件路径需手动输入
#        2. 要考虑关闭文件问题
#        3. 要考虑复制超大文件问题
#        4. 要能复制二进制文件def mycopy(src_file, dst_file):"""此函数的功以实现复制文件src_file : 源文件名dst_file : 目标文件名"""try:with open(src_file, "rb") as fr,open(dst_file, 'wb') as fw:  # fr读文件while True:data = fr.read(4096)if not data:break fw.write(data) except OSError: print("打开读文件失败") return False except: print("可能U盘被拔出...") return True s = input("请输入源文件路径名: ") d = input("请输入目标文件路径名: ") if mycopy(s, d): print("复制文件成功") else: print("复制文件失败")

转载于:https://www.cnblogs.com/leijing0607/p/7494972.html

python第六篇:Python复制超大文件、复制二进制文件相关推荐

  1. Python标准库shutil的使用( 文件复制删除、文件夹复制删除、压缩包 压缩解压处理模块)

    常用函数组合(持续更新) ** shutil模块的常见函数列表 复制类 shutil.copy(src, dst):将文件src复制至dst.dst可以是个目录,会在该目录下创建与src同名的文件,若 ...

  2. python自学视频-师傅带徒弟学Python:第一篇Python基础视频课程

    ,赠送一本"Python相关图书". 咨询方式:加[51CTO-关老师付费群]523714201 验证消息:咨询赠书 本视频采用Python 3.x版 本篇包括8章内容,系统介绍了 ...

  3. 二十六篇,Linux库文件(动态库和静态库)的制作。

    一.嵌入式linux库文件概念. 1.什么是库文件? 在linux下,有非常多的库文件. 例如: /lib                        --> 存放系统自带的库文件       ...

  4. python第六篇文件处理类型

    阅读目录 一 文件操作 二 打开文件的模式 三 操作文件的方法 四 文件内光标移动 五 文件的修改 文件处理 上节课复习 文件处理b模式 文件处理其他模式 seek  的补充  迭代器和生成器 生成器 ...

  5. 【Python第六篇】Python面向对象(进阶篇)及相关(异常处理、反射)

    本节内容: 类的成员 字段 方法(静态方法.类方法.普通方法) 属性 类成员的修饰符(私有成员.公有成员) 类的特殊成员 异常处理 反射 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成 ...

  6. 第十六篇 Python之迭代器与生成器

    一.迭代器 一. 递归和迭代 生活实例说明什么是递归和迭代 A想去腾达大厦,问B怎么走路,B 说我不知道,我给你问问C,C也不知道,C又去问D,D知道,把路告诉了C,C又告诉B,B最后告诉A, 这就是 ...

  7. 六、Python第六课——Python中的for循环及数字列表

    目录 一.Python中的for循环 1.for循环语句的声明. 2.for循环缩进常见问题 二.数字列表 1.函数range() 2.使用range()函数创建数字列表 3.使用一系列函数处理数字列 ...

  8. Python语法必备篇——Python字符串 学习【文末送书】

  9. python中如何实现复制粘贴_复制粘贴功能的Python程序 python 中如何实现

    python 中如何实现对文件的复制.粘贴虽然小编心有不甘,可是小编也明白,这辈子就只能陪你到这了. 比如说:小编想将"c:\123\1.txt"复制到"d:\新建文件夹 ...

最新文章

  1. mysql 锁语句_mysql-笔记 事务 锁 语句
  2. python类的私有属性_Python 的私有属性和‘受保护的’属性
  3. HDU 4556 Stern-Brocot Tree
  4. 免安装Mysql在Mac中的神坑之Access denied for user 'root'@'localhost' (using password: YES)
  5. 利用selenium webdriver点击alert提示框
  6. Hadoop的I/O操作
  7. 【英语学习】【WOTD】finicky 释义/词源/示例
  8. Android群英传笔记——摘要,概述,新的出发点,温故而知新,能够为师矣!
  9. Flutter快速上车之Widget 1
  10. matlab2c使用c++实现matlab函数系列教程-reshape函数
  11. M8的USB工作模式切换工具
  12. Sql server bulk insert
  13. (开源)微信小程序实时控制stc89c51,通过esp8266
  14. CABAC 基础二-算术编码
  15. 运行海康威视sdk实现拍照遇到的问题与解决
  16. 做了个小程序,拿到天使轮投资了!
  17. 超火的炫酷告白源码(HTML+CSS),前端表白源码,520表白,七夕情人节专属源码--文字开场白+相册旋转+浪漫3D樱花樱花雨
  18. 现代电子计算机音乐制作,现代电子音乐制作利器——Alesis VI61 MIDI键盘
  19. 交通流优化:一种强化学习方法
  20. qq飞车前瞻版服务器维护,QQ飞车手游前瞻版

热门文章

  1. 一元线性回归多元线性回归
  2. 现在学java的都是傻子?
  3. 【MySQL】数据库基本操作、表的操作
  4. 北大计算机科学与技术怎么样,国内高校计算机科学与技术学科排名,浙大表现亮眼,北大荣登榜首...
  5. 如何用C语言测试,C语言单元测试CMock使用(一) 基本用法
  6. 安卓开发仿微信图片拖拽_Android 仿微信朋友圈图片拖拽返回
  7. dubbo日志关闭_不可忽视的Dubbo线程池避坑指南
  8. 用户的大量数据保存在计算机的,大量计算机用户遭到恶意木马程序威胁
  9. C语言学习笔记---位字段
  10. eosio.cdt心得