zoukankan      html  css  js  c++  java
  • python文件内容处理(一)

    综述:一定要理解光标移动的规则

    ---------------------------------------------------------------------------第一部分基本操作--------------------------------------------------------------

    1.对象可以调用方法,文件是对象,所以也可调用对应的方法。操作文件对象,先建立文件对像。

    2.文件打开方法或者说对象创建方法

    方法一:函数open('filename'),唯一一个强制参数,文件名,其他参数:打开模式,编码用的多一些,需要close()函数关闭。返回文件对象(句柄),在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

    方法二:with open() ----自动关闭,报错也会自动关闭,不需要 close() 函数关闭

    3.打开模式决定可以进行哪些操作,也就是文件对象模式。

    文件打开基本模式:(1)只读r;不能写  (2)只写w;不能读  (3)追加a;可读,无则新增,有则追加  (4)组合模式;读写

    第一部分:文件的读'r':相关方法 read();readline();readlines()

         read(),按照字符取数据,注意光标位置,可指定读取的字符长度:例如read(6)读取六个字符长度

         readline(),取一行的内容,包括,换行符也会打印,也有参数限制可打印的长度;连续print打印,光标移动打印行的末尾,打印的不重复

         readlines(),取全部的内容,把每行作为列表的一个元素,以列表的形式打印,可for循环遍历

    第二部分:文件的写'w':相关方法write(),文件写入内容 ,注意,写的模式慎用,打开的时候已经清空

    第三部分:文件的追加‘a’

    第四部分:'r+' -----读写,打开一个文件用于读写。文件指针将会放在文件的开头。

                  ‘w+’---写读,该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

                   ‘a+’---读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

            

    ---------------------------------------------------------第三部分-------------------------------------------------------------------------------

    一,关于换行符的打印:

    二,光标移动以及位置

    seek() tell()

    (1)seek()移动读取文件时光标的位置;

    格式:file.seek(offset,whence)也即是seek([文件偏移量][文件指针位置])

    说明:参数offset表示要偏移的量,0即是不偏移,正数即向右偏移,负数即向左偏移

              参数whence表示参照位置,其中whence取值0 代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。whence值为空没设置时会默认为0

    (2)tell()可打印当前光标的位置   

    展示:

    with open('file1.txt') as con:
        #print(con.read())
        mon=con.read(4)
        print(mon)
        print(con.tell())    #文件对象调
        con.seek(1,0)        #从首项开始一个字符的位置
        print(con.tell())
    
    ----------结果-----
    #no p
    #4
    #1

    (3)对于同一个文件对象连续的操作要注意光标的位置是连续变动的

    #以下写入文件时
    with open('runoob.txt','w') as fib:
        print(fib.tell())      #源文件已经被格式化,光标在第0位
        fib.write('11111')
        print(fib.tell())       #写入之后在第5位,在下一位追加
        fib.write('22222')
        
    #1111122222   文件结果

     三,缓存区刷新

    flash()刷新缓存区的数据到磁盘,缓冲区被清空,借助进度条打印的例子很容易理解

    #实现进度条
    #原理:文件没有关闭之前,数据都是在缓存区
    import  sys,time
    
    fo = open("runoob.txt", "wb")
    for i in range(30):
        sys.stdout.write('*')   #还在内存缓冲区
        sys.stdout.flush()    # 刷新缓冲区(可将此行注释观察异同!)
        time.sleep(0.5)
    fo.close()

     比如,一般这个是防止短电未保存。

  • 相关阅读:
    jQuery对象初始化的多种传参数形式
    Ajax核心技术之XMLHttpRequest
    【转载】神奇的css属性pointer-events
    JavaScript学习笔记——错误处理
    jquery validate的漂亮css样式验证
    JavaScript Math和Number对象研究
    《JavaScript语言精粹》笔记
    HTML5版的String Avoider小游戏
    IE11 F12工具报错
    css之图片羽化处理
  • 原文地址:https://www.cnblogs.com/duguxiren/p/11300119.html
Copyright © 2011-2022 走看看