一、读文件
file = open("文件路径名","读写模式") # r :读模式 、w :写模式、a :追加模式
如果文件存在,则打开文件成功,如果文件不存在,则打开错误,会抛出一个IOError错误
file_content = file.read() #读取文件中的数据并以字符串的形式返回到内存中
二、关闭文件
file = open(...)
file.close()
由于文件读取可能存在抛出IOError错误,所以一旦抛出此错误,那么后续的file.close()则得不到调用,所以应该将读文件放在try...except..finally中
Python中提供了一种简单的方法,打开文件,其效果是和使用try...except...是一样的,但代码将更加简洁且不必调用close()关闭文件的方法,例如:
with open(...) as file1:
print(f.read())
三、读取文件的大小
如果文件较小,则可以方便的使用read()函数,而如果文件较大的话,则无法一次性的全部读取到内存中,那么则可以使用:read(size)方法来限制读取文件的大小或者也可以使用readline()方法
四、读取二进制文件
file1 = open(file_path,file_mode) #其中file_mode写为:rb 即可
五、字符编码
如果要读取非UTF-8的文本文件,则在打开文件时可以通过encoding指定其编码,例如:file = open(file_path,file_mode,encoding="gbk"),也可以通过errors="ignore"来忽略错误的编码字符
六、写文件
在Python中写文件的读取模式为:w、wb
在Python中写文件时数据并不会直接一个一个写入文件,而是先在内存中的缓存区中存储起来,直到一定程度或者一定状态再将文件写到硬盘中去,在写文件时一定要close(),因此只有调用此函数,Python才保证将所有的文件写入到硬盘中
在Python中如果要写入特定编码的文件,可以在open()函数中通过encoding关键字来指定其编码
七、操作内存中的str与bytes
对数据的读和写不一定是文件,也可以是读写内存中的值
Python中使用StringIO可以在内存中读写字符串的相关数据
from io import StringIO
str_io = StringIO()
str_io.write("hello")
str_io.write(‘‘)
str_io.writelines("world")
print(str_io.getvalue())
可以通过getvalue()方法获取写入后的str_io
from io import BytesIO
bytes_io = BytesIO()
bytes_io.write("hello")
bytes_io.write("中文".encode("utf-8"))
print(bytes_io.getvalue())