chapter 9 summary

open() 的基本语法是:
file_object = open(file_name, access_mode='r',buffering=-1)
access_mode,'r','w','a','U'分别表明读取, 写入和追加,通用换行符支持
使用 'r' 或 'U' 模式打开的文件必须是已经存在的

文件模式 操做
r 以读方式打开
Edit By Vheavens
Edit By Vheavens
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开 (必要时清空)
a 以追加模式打开 (从 EOF 开始, 必要时建立新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
a. Python 2.3 中新增



readlines() 方法并不像其它两个输入方法同样返回一个字符串. 它会读取全部(剩余的)行然
后把它们做为一个字符串列表返回.

os 模块属性 描述
linesep 用于在文件中分隔行的字符串
sep 用来分隔文件路径名的字符串
pathsep 用于分隔文件路径的字符串
curdir 当前工做目录的字符串名称
pardir (当前工做目录的)父目录字符串名称
无论你使用的是什么平台, 只要你导入了 os 模块, 这些变量自动会被设置为正确的值, 减小
了你的麻烦.

文件对象的内建方法 操做
file.close() 关闭文件
file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值)
file.flush() 刷新文件的内部缓冲区
file.isatty() 判断 file 是不是一个类 tty 设备
file.nexta() 返回文件的下一行(相似于file.readline() ), 或在没有其它行时
引起 StopIteration 异常
file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候,读取剩余的全部字节, 而后做为字符串返回
file.readintob(buf, size) 从文件读取 size 个字节到 buf 缓冲器(已不支持)
file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size
file.readlines(sizhint=0) 读取文件的全部行并做为一个列表返回(包含全部的行结束符); 若是给定sizhint 且大于 0 , 那么将返回总和大约为
sizhint 字节的行(大小由缓冲器容量的下一个值决定)( 好比说缓冲器的大小只能为4K 的倍数,若是sizhint为15k,则最后返回的多是16k———译者按)
file.xreadlinesc() 用于迭代, 能够替换 readlines() 的一个更高效的方法
file.seek(off, whence=0) 在文件中移动文件指针, 从 whence ( 0 表明文件其始, 1表明当前位置, 2 表明文件末尾)偏移 off 字节
file.tell() 返回当前在文件中的位置
file.truncate(size=file.tell()) 截取文件到最大 size 字节,默认为当前文件位置
file.write(str) 向文件写入字符串
file.writelines(seq) 向文件写入字符串序列 seq ; seq 应该是一个返回字符串的可迭代对象; 在2.2 前, 它只是字符串的列表

文件的内建属性:
文件对象的属性 描述
file.closed True 表示文件已经被关闭, 不然为 False
file.encodinga 文件所使用的编码 - 当 Unicode 字符串被写入数据时, 它们将自动使用file.encoding 转换为字节字符串; 若file.encoding 为 None 时使用系统默认编码
file.mode 文件打开时使用的访问模式
file.name 文件名
file.newlinesa 未读取到行分隔符时为 None , 只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含全部当前所遇到的行结束符的列表
file.softspace 为0 表示在输出一数据后,要加上一个空格符,1表示不加。这个属性通常程序员用不着,由程序内部使用。


sys 模块经过 sys.argv 属性提供了对命令行参数的访问
命令行参数是调用某个程序时除程序觉得的其余参数,好比在文本的环境下执行程序就要在cmd下输入程序名和命令行参数。大多 IDE环境都提供一个用来输入"命令行参数"的窗口; 这些参数最后会像命令行上执行那样被传递给程序.
sys.argv 是命令行参数的列表
􀁺 len(sys.argv) 是命令行参数的个数(也就是 argc)
sys.argv[0]永远是文件名。


文件系统

表9.5 os 模块的文件/目录访问函数
函数 描述
文件处理
mkfifo()/mknod() 建立命名管道/建立文件系统节点
remove()/unlink() Delete file 删除文件
rename()/renames() 重命名文件
*statc() 返回文件信息
symlink() 建立符号连接
utime() 更新时间戳
tmpfile() 建立并打开('w+b')一个新的临时文件
walk()生成一个目录树下的全部文件名
目录/文件夹
chdir()/fchdir()改变当前工做目录/经过一个文件描述符改变当前工做目录
chroot()d 改变当前进程的根目录
listdir() 列出指定目录的文件
getcwd()/getcwdu() 返回当前工做目录/功能相同, 但返回一个 Unicode 对象
mkdir()/makedirs() 建立目录/建立多层目录
rmdir()/removedirs() 删除目录/删除多层目录
访问/权限
access() 检验权限模式
chmod() 改变权限模式
chown()/lchown()a 改变 owner 和 group ID/功能相同, 但不会跟踪连接
umask() 设置默认权限模式
文件描述符操做
open() 底层的操做系统 open (对于文件, 使用标准的内建 open() 函数)
read()/write() 根据文件描述符读取/写入数据
dup()/dup2() 复制文件描述符号/功能相同, 可是是复制到另外一个文件描述符
设备号
makedev()a 从 major 和 minor 设备号建立一个原始设备号
Edit By Vheavens
Edit By Vheavens
major() /minor()a从原始设备号得到 major/minor 设备号


表 9.6 os.path 模块中的路径名访问函数
函数 描述
分隔
basename() 去掉目录路径, 返回文件名
dirname() 去掉文件名, 返回目录路径
join() 将分离的各部分组合成一个路径名
split() 返回 (dirname(), basename()) 元组
splitdrive() 返回 (drivename, pathname) 元组
splitext() 返回 (filename, extension) 元组信息
getatime() 返回最近访问时间
getctime() 返回文件建立时间
getmtime() 返回最近文件修改时间
getsize() 返回文件大小(以字节为单位)查询
exists() 指定路径(文件或目录)是否存在
isabs() 指定路径是否为绝对路径
isdir() 指定路径是否存在且为一个目录
isfile() 指定路径是否存在且为一个文件
islink() 指定路径是否存在且为一个符号连接
ismount() 指定路径是否存在且为一个挂载点
samefile() 两个路径名是否指向同个文件


pickle 和 marshal 模块

pickle 模块中的两个主要函数是 dump() 和 load()。dump()函数接受一个文件句柄和一个数据对象做为参数, 把数据对象以特定格式保存到给定文件里. 当咱们使用 load()函数从文件中取出已保存的对象时, pickle 知道如何恢复这些对象到它们原本的格式.
相关文章
相关标签/搜索