文本文件:人类可以直接阅读理解的文件
二进制文件:图形文件、音视频文件、可执行文件、资源文件、数据库文件、office文档等都属于二进制文件。二进制文件无法用记事本或其他普通字处理软件直接进行编辑,通常也无法被人类阅读和理解,需要使用正确的软件进行解码或反序列化之后才能正确读取、显示、修改或执行。
文件操作基本知识
无论是文本文件还是二进制文件,其操作流程基本都是一致的,首先打开文件并创建文件对象,然后通过改文件对象对文件内容进行读取、写入、删除和修改等操作,最后关闭并保存文件内容。
内置函数open() 可以指定模式打开指定文件并创建文件对象。
文件对象常用方法:close() read([size]) readline() readlines() tell() write(s) writelines(s)
关键字with,上下文管理语句,不论因为什么原因跳出with块,总能保障文件被正确关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的上下文,常用于文件操作、数据库连接等场合。
二进制文件操作
必须正确理解二进制文件结构和序列化规则,然后设计正确的反序列化规则,才能准确理解二进制文件内容
pyrhon中常用的序列化模块有struct pickle shelve marshal
标准库pickle 提供的dump()方法用于将数据进行序列化并写入文件,而load() 用于读取二进制文件内容并进行反序列化,还原为原来的信息。