文件的存储方式:
文本文件和二进制文件
文本文件可以直接由文本编辑器查看,而二进制文件需要用其他软件打开,如图片,视频,音频文件,直接用文本编辑器查看会显示乱码,但是文本文件和二进制文件本质上都是二进制文件。
操作文件的套路:
1 打开
2 读取
3 关闭
在python中操作文件需要记住的1个函数和3个方法:
函数:open
方法:
read
write
close
在编写代码时,习惯打开文件后直接关闭,以免遗忘
读取和写入:
f = open('lcctry.txt','w')
f.write('hello, world')
Out[130]: 12
f.close()
读取时的r可以不写,调用open时默认为r
f=open('lcctry.txt','r')
f.read(3)
Out[2]: 'hel'
f.read()
Out[3]: 'lo, world'
f.read()
Out[4]: ''
readline读取行:
some_file.readline()读取一整行并返回,方法执行后,会把指针移动到下一行,准备再次读取
some_file.readline(5)最多读取5个字符并返回
关闭文件:
1 close
2 try与finally
#打开文件
try:
#将数据写入文件
finally:
file.close()
3 with语句(在语句末尾时将自动关闭文件)
with open(“somefile.txt") as somefile:
do_something(somefile)
f=open('lcctry.txt','w')
f.write('this\nis no\nhaiku')
f.close()
#不加最后的close()时发现文字没有被添加进lcctry.txt
文件指针
读取文件后,将停在读取文件的末尾,再次调用read时,将从上次读取的文件的末尾位置继续读取
# 1. 打开文件
file = open("abc")
# 2. 读取文件内容
text = file.read(2)
print(text)
print("-" * 50)
text = file.read()
print(text)
# 3. 关闭文件
file.close()
12
--------------------------------------------------
3456
7890
小文件的复制操作
# 1. 打开文件
file_read = open("abc")
file_write = open("abc[复件]", "w")
# 2. 读写
text = file_read.read()
file_write.write(text)
# 3. 关闭文件
file_read.close()
file_write.close()
大文件的复制操作
源文件太大,一次性读取会给内存造成很大压力,利用readline逐行读取
# 1. 打开文件
file_read = open("abc")
file_write = open("abc[复件]", "w")
# 2. 读写
while True:
# 读取一行内容
text = file_read.read()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3. 关闭文件
file_read.close()
file_write.close()