如何在Python中复制文件
时间:2020-01-09 10:44:18 来源:igfitidea点击:
在这篇文章中,我们将介绍使用Python复制文件的不同方法。
1.在Python中复制文件的一种简单方法是,一旦拥有文件对象,就使用read()方法读取文件,然后将内容写入另一个文件。
以下Python程序以二进制模式打开图像文件,然后将其写入另一个文件。
def copy_file(src_file, dest_file): try: f1 = open(src_file, 'rb') f2 = open(dest_file, 'wb') b = f1.read() f2.write(b) print('Coying image completed...') finally: f1.close() f2.close() #calling function copy_file('F:/theitroad/image.png', 'F:/theitroad/Python/newimage.png')
2.当然,Python中有更好的方法来复制文件。 Shutil模块对文件和文件集合提供了许多高级操作。
在该模块中,有一个函数shutil.copyfile(src,dest),它将名为src的文件的内容复制到名为dst的文件。目标必须是完整的目标文件名,并且必须是可写的。如果dst已经存在,它将被替换。函数返回到目标文件的路径。
请注意,此功能不会复制文件的元数据(权限位,最后访问时间,最后修改时间)。
def copy_file(src_file, dest_file): try: shutil.copyfile(src_file, dest_file) print('Copying file completed...') except shutil.SameFileError as error: print(error) print('source and destination files are same') except IOError as error: print(error) print('Destination not writable') # Any other exception except: print('Error while copying')
3.如果要复制文件和元数据(权限位,上次访问时间,上次修改时间),请使用shutil.copystat(src,dst)
def copy_file(src_file, dest_file): try: shutil.copystat(src_file, dest_file) print('Copying file completed...') except shutil.SameFileError as error: print(error) print('source and destination files are same') except IOError as error: print(error) print('Destination not writable') # Any other exception except: print('Error while copying')
4.如果要将源文件复制到另一个目录,可以使用shutil.copy(src,dst)完成
此处dst可以指定目录,并且文件将使用src中的基本文件名复制到dst中。函数返回到新创建文件的路径。
def copy_file(src_file, dest_dir): try: file_path = shutil.copy(src_file, dest_dir) print('Copying file completed...', dest_dir) except shutil.SameFileError as error: print(error) print('source and destination files are same') except IOError as error: print(error) print('Destination not writable') # Any other exception except: print('Error while copying')