• 文件处理


    打开文件的方式

    方式一:

    1. 打开文件,得到一个句柄并赋值给一个变量
    f=open("aa","r",encoding="utf8")
    2. 通过句柄对文件进行操作
    data=f.read()
    3. 关闭文件
    f.close()

    方式二:

    with open("aa","r",encoding="utf8") as f:
        data=f.read()

    打开文件的模式

    r,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    w,只写模式【不可读;不存在则创建;存在则清空内容】
    a,追加写模式【不可读;不存在则创建;存在则只追加内容】
    
    rb,二进制只读模式
    wb,二进制只写模式
    ab,二进制追加模式
    
    "+" 表示可以同时读写某个文件
    r+, 读写【可读,可写】
    w+,写读【可读,可写】
    a+, 写读【可读,可写】
    
    x, 只写模式【不可读;不存在则创建,存在则报错】
    x+ ,写读【可读,可写】
    xb

    操作文件的方式

    f.read() #读取所有内容,光标移动到文件末尾
    f.readline() #读取一行内容,光标移动到第二行首部
    f.readlines() #读取每一行内容,存放于列表中
    
    f.write('1111
    222
    ') #针对文本模式的写,需要自己写换行符
    f.write('1111
    222
    '.encode('utf-8')) #针对b模式的写,需要自己写换行符
    f.writelines(['333
    ','444
    ']) #文件模式  自己写换行符

    文件的光标问题

    f.seek()
    f.seek(0) 从文件开头重新开始读取
    s.seek(offset,whence=0)
    offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
    whence:可选,默认值为 0。
    seek(0,0) 默认移动到文件开头或简写成seek(0)
    seek(x,1) 表示从当前指针位置向后移x(正数)个字节,如果x是负数,则是当前位置向前移动x个字节
    seek(x,2) 表示从文件末尾向后移x(正数)个字节,如果x负数,则是从末尾向前移动x个字节
    
    典型的例子:模仿tail -f 
    import time
    with open('test.txt','rb') as f:
        f.seek(0,2) #将光标移动到文件末尾,再向后移动0个字节数 从文件末尾开始读
        while True:
            line=f.readline()
            if line:
                print(line.decode('utf-8'))
            else:
                time.sleep(0.2)

    修改文件的方式

    import os
    #以只读的方式打开源文件 以写的方式创建新的文件
    with open('aa.txt','r',encoding='utf-8') as r_f,open('bb.txt','w',encoding='utf-8') as w_f:
        for line in r_f: #将源文件内容写入新文件  并且修改
            if line.startswith('你好'):
                line='修改了
    '
            w_f.write(line)
    #目前就有了两个文件,但是只需要一个修改后的文件,原理就是删除源文件,将新文件重命名
    ##删除和重命名文件
    os.remove('aa.txt')
    os.rename('bb.txt','aa.txt')

    二进制方式操作文件

    读出二进制文件的方法:
    with open('aa','rb') as f:
        print(f.read())
        f.seek(0)
        print(f.read().decode('gbk')) #windows上是gbk
    '''
    b'xbbxb9xd3xd0xcaxabxbaxcdxd4xb6xb7xbd
    '
    还有诗和远方
    '''

    写入二进制文件的方法:

    with open("aa","wb") as f:
        f.write("还有诗和远方
    ".encode("utf8"))

    使用二进制方式,保存图片

    with open('ff.jpg','rb') as read_f,
            open('wuwu_new.jpg','wb') as write_f:
        write_f.write(read_f.read())
  • 相关阅读:
    四十九、在SAP中查看程序资源结构对象
    四十八、在SAP中函数参数的使用
    四十七、在SAP中,把功能区块整合成一个函数,通过调用函数的办法使代码简洁明了
    四十六、SAP的Message中E和W区别
    四十五、SAP中Message的管理
    四十四、在SAP中冻结第一行表头
    四十三、在SAP中初始化勾选值
    四十二、在SAP中添加单选框
    四十一、在SAP中添加多条件选择框
    四十、SAP中CASE语句用法
  • 原文地址:https://www.cnblogs.com/lazyball/p/11648131.html
Copyright © 2020-2023  润新知