题目:
-
给定一个原文件和目标路径,程序将该文件拷贝到目标路径下
-
程序要能够实现视频、图片等大文件的拷贝
-
如果目标路径下有文件与原文件同名,程序要予以解决。
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)