8:Python基础-文件操作IO

题目:

  • 给定一个原文件和目标路径,程序将该文件拷贝到目标路径下

  • 程序要能够实现视频、图片等大文件的拷贝

  • 如果目标路径下有文件与原文件同名,程序要予以解决。

     import os
     
     def my_copy(read_path,copy_path):
     # -----------------------------------定义函数---------------------------------
     # 拼接路径,得到拷贝路径,路径包括最终拷贝的文件名称和后缀
     file_name = os.path.basename(read_path)
     final_path = os.path.join(copy_path,file_name)
     # 检查新路径下是否存在该文件,否则更改文件名,加前缀copy-
     while os.path.exists(final_path):
         file_name = 'copy-'+file_name
         final_path = os.path.join(copy_path, file_name)
     # 打开目标文件和原文件,开始读写操作
     my_file = open(read_path, "rb")
     copy_file = open(final_path, "ab")
     # 得到原文件大小
     read_size = os.path.getsize(read_path)
     # 定义每次读取的字节数
     length = 5*1024
     while True:
         # 文件小于length个字节,一次读取
         if read_size < length:
             content = my_file.read()
             copy_file.write(content)
             break
         else:
             # 文件大于length个字节,多次次读取
             content = my_file.read(length)
             copy_file.write(content)
             read_size -= length
    
     # 关闭文件,给出提示!
     my_file.close()
     copy_file.close()
     print('复制完成!')
    
     # -----------------------------------调用函数---------------------------------
     # 原文件地址
     read_path = r'E:\python\Project1\leiyu.avi'
     
     # 复制文件地址
     copy_path1 = r'E:\python\Project1'
     
     copy_path2 = r'E:\python\Project1\python_book'
     
     # 如果复制文件和原文件在一个目录,则会在前面加copy-,并可以多次复制!
     my_copy(read_path,copy_path1)
     my_copy(read_path,copy_path1)
     
     # 如果复制文件和原文件在不在一个目录,也可以多次复制,复制文件有前缀copy-
     my_copy(read_path,copy_path2)
     my_copy(read_path,copy_path2)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值