• 文件的操作


    open() 打开文件,默认只读模式,赋值时存一个文件句柄(内存对象,记录了该文件的一些属性,名字,位置,大小等)

      r: 只读

      w: 只写,新建文件,覆盖之前的同名文件

      a: 追加,往内容末尾写

      r+: 读写,这里的写只能往末尾写

      w+: 写读,这里的写是新建文件,同样只能往末尾写

      a+: 追加读写

      rb: 二进制文件的读写

    read() 读文件,可加入参数指定读取内容的长度

    >>> f = open('today.txt')
    >>> f.read()
    '今天星期五啦
    明天好好休息,加油!'

    write() 写文件  w模式会新建文件再写入,会覆盖之前的文件;a模式在原文件上的末尾追加内容

    >>> f = open('today.txt', 'w')
    >>> f.write('明天周一,加油!')
    8
    >>> f.close()
    >>> f = open('today.txt')
    >>> f.read()
    '明天周一,加油!'
    >>> f.close()
    
    >>> f = open('today.txt', 'a')
    >>> f.write('我要努力努力再努力!')
    10
    >>> f.close()
    >>> f = open('today.txt')
    >>> f.read()
    '明天周一,加油!我要努力努力再努力!'

     readline() 读一行

    >>> f = open('today.txt', 'r')
    >>> f.readline()
    '明天周一,加油!我要努力努力再努力!'

    readlines() 把内容转为列表,各行内容作为列表中的元素

    >>> f = open('today.txt', 'r')
    >>> f.readlines()
    ['明天周一,加油!我要努力努力再努力!']

    遍历每行的两种方法

    >>> for i in f.readlines():
    ...   print(i)
    ...
    明天周一,加油!我要努力努力再努力!
    
    今天周一,我在继续努力!
    
    明天周二,我争取更努力!
    
    >>> for i in f:   # 这个方法比上面的性能高,因为f就是一个迭代器
    ...   print(i)
    ...
    明天周一,加油!我要努力努力再努力!
    
    今天周一,我在继续努力!
    
    明天周二,我争取更努力

    tell() 返回当前文件句柄的指针位置

    >>> f = open('today.txt', 'r')
    >>> f.read(2)
    '明天'
    >>> f.tell()
    4

    seek() 把文件句柄的指针移到指定位置

    >>> f = open('today.txt', 'r')
    >>> f.seek(4)
    4
    >>> f.read()
    '周一,加油!我要努力努力再努力!
    今天周一,我在继续努力!
    明天周二,我争取更努力!'

    encoding  返回文件的编码

    >>> f = open('today.txt', 'r')
    >>> f.encoding
    'cp936'

    fileno() 文件句柄的编号(在IO接口中)

    name 文件名

    isatty() 是否为一个终端设备

    seekable() 是否可以移动文件指针,终端设备文件移不了

    readable() 是否可读

    writeable() 同理

    flush() 刷新(把内存中的缓存写入磁盘里,写文件时,先放到内存中的缓存中,等到缓存一定内容时,再写入硬盘)。

    进度条

    import sys, time
    for i in range(100):
        sys.stdout.write('*') # sys.stdout.write与print的区别是继续打印不换行
        sys.stdout.flush()
        time.sleep(0.1)

    truncate() 从头开始截取内容(不受文件句柄指针的影响),不指定长度时,会清空文件内容

    >>> f = open('today.txt', 'a')
    >>> f.truncate(10)
    >>> f.close()
    >>> f = open('today.txt', 'r')
    >>> f.read()
    '明天周一,'

    修改文件的方法:

    1.像vim那样,先把文件读到内存中,再改。(文件大的时候,占用内存大,不推荐!)

    2.边改边写到新的文件。(逐行读第一个文件,(修改)写入另一个文件)

    with语句  执行完自动close, 支持多文件一起close

    >>> with open('today.txt', 'r') as f:
    ...   f.read()
    ...
    '明天周一,'
    
    with open('log1') as f1, open('log2') as f2:  # 多文件操作,逗号隔开
      pass
  • 相关阅读:
    [转载]http://bbs.theithome.com/readhtmtid123.html
    普通软件项目开发过程规范(二)—— 启动和计划阶段 (转)
    项目感悟:项目中的利益权衡 (转)
    普通软件项目开发过程规范(三)—— 执行阶段 (转)
    从研发经理到部门经理——一个新经理的困惑与求解 (转)
    软件开发中的冲突
    项目管理中的法治和人治
    一位技术人员成长的烦恼及我的分析(转)
    普通软件项目开发过程规范(五)—— 总结 (转)
    普通软件项目开发过程规范(四)—— 控制和结束阶段 (转)
  • 原文地址:https://www.cnblogs.com/allenzhang-920/p/8647769.html
Copyright © 2020-2023  润新知