python核心编程笔记(8)- 文件,os模块

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对象的永久性存储
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值