采用书籍Python核心编程(第二版),人民邮电出版社,2008年7月第1版。本书以Python2.5为主,但笔记主要以Python3.6为主。
第9章 文件和输入输出
9.1 文件对象
- 文件对象不仅可以用来访问普通的磁盘文件,也可以访问任何其他类型抽象层面上的“文件”
- 内建函数open()返回一个文件对象,对该文件的相关操作都通过该对象进行
- 文件知识连续的字节序列。数据的传输经常会用到字节流。
9.2 文件
- fr = open(filename, mode=’r’, buffering=-1) :r代表读,w代表写,a代表追加数据,+代表读写,b代表二进制打开;buffering表示缓冲方式
- 工厂函数file():open() 来读写文件, 而在处理文件对象时使用 file() , 例如: if instance(f, file)
- 读文件:readline() 返回一行 readlines() 返回所有行的一个列表,不会删除行结束符,需自行处理;读文件用 for line in file: … 代替,高效迭代,节省空间
- 写文件:write() 写一行 writelines() 写入一个字符串列表;写入的字符串如果需要换行需在字符串中添加换行符
- 文件内移动:seek(offset, location),相对location移动offset,文件位置默认为0;offset偏移量,正为增加,负为减少;location 0 1 2分别代表文件开头,当前,末尾
- 文件迭代:for line in file: 迭代器迭代,替换原来的readlines(),节省内存且高效
- 其他方法:文件关闭close() 把缓冲区数据立刻写入文件flush() 文件截取truncate() 返回当前位置tell()
- 文件内建属性:文件打开模式mode 文件是否关闭closed 文件名name
- 标准文件:(import sys)sys.stdin/stdout/stderr
- 命令行参数:(import sys)sys.argv 是命令行参数的列表,长度代表参数的个数,第一个元素是程序的名称
9.3 文件系统
- 访问文件系统需import os,该模块也是访问操作系统的主要接口,该模块包括:read()/write() 读取/写入数据 remove()删除文件 rmdir()/removedirs() 删除目录/删除多层目录 mkdir() chdir() listdir() getcwd()
- os.path包括:basename() 去掉目录路径, 返回文件名 dirname() 去掉文件名, 返回目录路径 exists() 指定路径(文件或目录)是否存在 isdir() 指定路径是否存在且为一个目录 isfile() 指定路径是否存在且为一个文件
9.4 永久存储模块
- pickle、marshal、shelve
- 参考资料:python3_pickle模块详解
参考资料: