- 零基础学Python(第2版)
- 黄传禄 张克强 赵越
- 555字
- 2025-03-22 17:27:13
7.1.5 文件的复制
file类并没有提供直接复制文件的方法,但是可以使用read()、write()方法,同样可以实现复制文件的功能。下面【例7-3】这段代码把hello.txt的内容复制给hello2.txt。
【例7-3.py】
01 # 使用read()、write()实现复制 02 # 创建文件hello.txt 03 src = open("hello.txt", "w") 04 li = ["hello world\n", "hello China\n"] 05 src.writelines(li) 06 src.close() 07 # 把hello.txt复制到hello2.txt 08 src = open("hello.txt", "r") 09 dst = open("hello2.txt", "w") 10 dst.write(src.read()) 11 src.close() 12 dst.close()
【代码说明】
·第8行代码以只读的方式打开文件hello.txt。
·第9行代码以只写的方式打开文件hello2.txt。
·第10行代码,通过read()读取hello.txt的内容,然后把这些内容写入hello2.txt。
shutil模块是另一个文件、目录的管理接口,提供了一些用于复制文件、目录的函数。copyfile()函数可以实现文件的复制,copyfile()函数的声明如下所示。
copyfile(src, dst)
【代码说明】
·参数src表示源文件的路径,src是字符串类型。
·参数dst表示目标文件的路径,dst是字符串类型。
·该函数把src指向的文件复制到dst指向的文件。
文件的剪切可以使用move()函数实现,该函数的声明如下所示。
copyfile(src, dst, *, follow_symlinks=True)
move()的参数和copyfile()相同,移动一个文件或目录到指定的位置,并且可以根据参数dst重命名移动后的文件。下面这段代码使用shutil模块实现文件的复制。
01 # shutil模块实现文件的复制 02 import shutil 03 04 shutil.copyfile("hello.txt","hello2.txt") 05 shutil.move("hello.txt","../") 06 shutil.move("hello2.txt","hello3.txt")
【代码说明】
·第4行代码调用copyfile(),把hello.txt的内容复制给hello2.txt。
·第5行代码调用move(),把hello.txt复制到当前目录的父目录,然后删除hello.txt。相当于把文件hello.txt剪切下来再粘贴到父目录。
·第6行代码调用move(),把hello2.txt移动到当前目录,并命名为hello3.txt。hello2.txt将被删除。