复制文件
我们先创建一个文件。
hello 1
hello 2
hello 3
file_read=open("123")
file_write=open("123复件","w")
text=file_read.read()
file_write.write(text)
file_read.close()
file_write.close()
我们先打开了文件123,之后又打开了一个新文件叫做123复件。 我们从第一个文件中读取了文件的内容之后又从新的文件进行输出。 最后分别关闭两个文件。
复制大文件
当我们要读取的文件非常非常的没有办法一次性读完,那么我们就不能使用简单的复制方法进行复制打文件了。 我们可以打开这个大文件,逐行读取文件的内容,并按顺序写入到另外一个文件。
file_read=open("123")
file_write=open("123复件","w")
while True:
text=file_read.readline()
if not text:
break
file_write.write(text)
file_read.close()
file_write.close()
在打开文件和关闭文件的代码中我们没有修改,我们进行修改的是将read方法替换成了readline,之后我们使用了一个条件判断语句,如果没有读到内容就进行break,如果读到内容就进行输出。 我们可以使用tell()方法返回文件指针的当前位置 使用seek()方法可以更改文件指针的位置。
总结
下面我们队文件对象的常用方法进行一个总结。
方法 | 功能描述 |
---|
close() | 吧缓冲区内容写入文件 | fileno | () 返回文件描述符(整数) | flush() | 把缓冲区内容写入文件,但不关闭文件对象 | read(n) | 最多读取并返回n个字符。如果n为负数或为空,则读取文件的所有内容 | readline() | 读取并返回文件的一行 | readlines() | 读取并返回文件的行列表 | seek(offset,form) | 将文件指针移动到新的位置,offset表示相对于form的偏移量。form的取值0/1、2分别代表文件头、当前位置和文件尾。 | seekable | 如果文件支持随机访问,则返回True | tell() | 返回文件指针的当前位置 | truncate(n=None) | 只保留文件的前n个字符,如果未指定n,则只保留文件头到指针的当前位置 | writable | 测试当前文件是否可写 | write(s) | 将字符串s写入文件并返回写入的字符数 | writelines | 将列表lines写入文件 |
|