ch9 文件
1. open(): file_object = open(file_name, access_mode='r', buffering=-1)
file_name 文件名()相对路径或绝对路径
access_mode r,w,a,U(代表通用换行符支持),b(二进制模式访问,用于除linux系统),+(可读可写)
buffering 用于指示访问文件所采用的缓冲方式. 其中 0 表示不缓冲, 1表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小.
2. 工厂函数file(),类同于open(),可以替换
3. 通用换行符支持:
不同平台用来表示行结束的符号是不同的, 例如 \n, \r, 或者 \r\n.当你使用 'U' 标志打开文件的时候, 所有的行分割符(或行结束符, 无论它原来是什么)通过 Python 的输入方法(例如 read*() )返回时都会被替换为换行符 NEWLINE(\n).
4. 文件内建方法
输入:read() readline() readlines()
read():方法用来直接读取字节到字符串中, 最多读取给定数目个字节. 如果没有给定size参数(默认值为 -1)或者 size 值为负, 文件将被读取直至末尾.
readline():方法读取打开文件的一行(读取下个行结束符之前的所有字节). 然后整行,包括行结束符,作为字符串返回. 和 read() 相同, 它也有一个可选的 size 参数, 默认为 -1, 代表读至行结束符.
readlines(): 方法并不像其它两个输入方法一样返回一个字符串. 它会读取所有(剩余的)行然后把它们作为一个字符串列表返回. 它的可选参数 sizhint 代表返回的最大字节大小.
输出:write()
write() 它把含有文本数据或二进制数据块的字符串写入到文件中去.
writelines() 方法是针对列表的操作, 它接受一个字符串列表作为参数, 将它们写入文件. 行结束符并不会被自动加入, 所以如果需要的话, 你必须在调用writelines()前给每行结尾加上行结束符.
文件移动:seek() 参数有0,1,2,0代表起始处,1表示当前,2表示文件尾;tell()方法是对seek()的补充;它告诉你当前文件指针在文件中的位置
文件迭代:for eachLine in f:
文件关闭:close()
flush() 方法会直接把内部缓冲区中的数据立刻写入文件,
5. 行分隔符:
os 模块属性 描述
linesep 用于在文件中分隔行的字符串
sep 用来分隔文件路径名的字符串
pathsep 用于分隔文件路径的字符串
curdir 当前工作目录的字符串名称
pardir (当前工作目录的)父目录字符串名称
6. 文件内建方法列表:
文件对象的方法 操作
file.close() 关闭文件
file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值)
file.flush() 刷新文件的内部缓冲区
file.isatty() 判断 file 是否是一个类 tty 设备
file.next() 返回文件的下一行(类似于 file.readline() ), 或在没有其它行时引发 StopIteration 异常
file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候, 读取剩余的所有字节, 然后作为字符串返回
file.readinto (buf, size) 从文件读取 size 个字节到 buf 缓冲器(已不支持)
file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size个字符
file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回
file.xreadlines () 用于迭代, 可以替换 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 应该是一个返回字符串的可迭代对象;
7. 文件内建属性
file.closed True 表示文件已经被关闭, 否则为 False
file.encoding 文件所使用的编码 - 当 Unicode 字符串被写入数据时, 它们将自动使用 file.encoding 转换为字节字符串; 若 file.encoding 为 None 时使用系统默认编码
file.mode 文件打开时使用的访问模式
file.name 文件名
file.newlines 未读取到行分隔符时为 None , 只有一种行分隔符时为一个字符串, 当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束符的列表
8. 命令行参数
sys.argv 是命令行参数的列表;len(sys.argv) 是命令行参数的个数(也就是 argc)
9. marshal和pickle提供python对象的序列化或存储转换功能
dbm 提供一个类似字典和文件的对象,可以完成字符串的永久性存储
shelve 提供了python对象的序列化和存储转换,以及类似字典和文件的对象,可以完成python对象的永久性存储
1. open(): file_object = open(file_name, access_mode='r', buffering=-1)
file_name 文件名()相对路径或绝对路径
access_mode r,w,a,U(代表通用换行符支持),b(二进制模式访问,用于除linux系统),+(可读可写)
buffering 用于指示访问文件所采用的缓冲方式. 其中 0 表示不缓冲, 1表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小.
2. 工厂函数file(),类同于open(),可以替换
3. 通用换行符支持:
不同平台用来表示行结束的符号是不同的, 例如 \n, \r, 或者 \r\n.当你使用 'U' 标志打开文件的时候, 所有的行分割符(或行结束符, 无论它原来是什么)通过 Python 的输入方法(例如 read*() )返回时都会被替换为换行符 NEWLINE(\n).
4. 文件内建方法
输入:read() readline() readlines()
read():方法用来直接读取字节到字符串中, 最多读取给定数目个字节. 如果没有给定size参数(默认值为 -1)或者 size 值为负, 文件将被读取直至末尾.
readline():方法读取打开文件的一行(读取下个行结束符之前的所有字节). 然后整行,包括行结束符,作为字符串返回. 和 read() 相同, 它也有一个可选的 size 参数, 默认为 -1, 代表读至行结束符.
readlines(): 方法并不像其它两个输入方法一样返回一个字符串. 它会读取所有(剩余的)行然后把它们作为一个字符串列表返回. 它的可选参数 sizhint 代表返回的最大字节大小.
输出:write()
write() 它把含有文本数据或二进制数据块的字符串写入到文件中去.
writelines() 方法是针对列表的操作, 它接受一个字符串列表作为参数, 将它们写入文件. 行结束符并不会被自动加入, 所以如果需要的话, 你必须在调用writelines()前给每行结尾加上行结束符.
文件移动:seek() 参数有0,1,2,0代表起始处,1表示当前,2表示文件尾;tell()方法是对seek()的补充;它告诉你当前文件指针在文件中的位置
文件迭代:for eachLine in f:
文件关闭:close()
flush() 方法会直接把内部缓冲区中的数据立刻写入文件,
5. 行分隔符:
os 模块属性 描述
linesep 用于在文件中分隔行的字符串
sep 用来分隔文件路径名的字符串
pathsep 用于分隔文件路径的字符串
curdir 当前工作目录的字符串名称
pardir (当前工作目录的)父目录字符串名称
6. 文件内建方法列表:
文件对象的方法 操作
file.close() 关闭文件
file.fileno() 返回文件的描述符(file descriptor ,FD, 整数值)
file.flush() 刷新文件的内部缓冲区
file.isatty() 判断 file 是否是一个类 tty 设备
file.next() 返回文件的下一行(类似于 file.readline() ), 或在没有其它行时引发 StopIteration 异常
file.read(size=-1) 从文件读取 size 个字节, 当未给定 size 或给定负值的时候, 读取剩余的所有字节, 然后作为字符串返回
file.readinto (buf, size) 从文件读取 size 个字节到 buf 缓冲器(已不支持)
file.readline(size=-1) 从文件中读取并返回一行(包括行结束符), 或返回最大 size个字符
file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回
file.xreadlines () 用于迭代, 可以替换 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 应该是一个返回字符串的可迭代对象;
7. 文件内建属性
file.closed True 表示文件已经被关闭, 否则为 False
file.encoding 文件所使用的编码 - 当 Unicode 字符串被写入数据时, 它们将自动使用 file.encoding 转换为字节字符串; 若 file.encoding 为 None 时使用系统默认编码
file.mode 文件打开时使用的访问模式
file.name 文件名
file.newlines 未读取到行分隔符时为 None , 只有一种行分隔符时为一个字符串, 当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束符的列表
8. 命令行参数
sys.argv 是命令行参数的列表;len(sys.argv) 是命令行参数的个数(也就是 argc)
9. marshal和pickle提供python对象的序列化或存储转换功能
dbm 提供一个类似字典和文件的对象,可以完成字符串的永久性存储
shelve 提供了python对象的序列化和存储转换,以及类似字典和文件的对象,可以完成python对象的永久性存储