zoukankan      html  css  js  c++  java
  • 文件的读写

    文件的读取

    # file=open('read1','r',encoding='utf-8')
    # print(file.read())
    # file.closed
    
    file=open('read1','r',encoding='utf-8')
    # print(file.readline(),end='')#加上end='' 去掉自动换行
    # print(file.readline())
    # file.closed
    print(file.readlines())

    写文件

    file=open('write1','w',encoding='utf-8')#如果没有文件会创建新的文件,如果有则会覆盖原文件
    file.writelines(['你是一头小毛驴。
     我从来都不骑
    ', '有一天……'])#全是字符串,不能带数字
    file.closed

    追加文件

    file=open('read1','a',encoding='utf-8')
    file.write('哈哈哈')
    file.closed

    文件其他处理模式

    # f=open('xxx','r+',encoding='gbk')
    # # data=f.read()
    # # print(data)
    # # f.write('123sb')
    #
    #
    #
    # f.write('sb')
    
    
    #文件修改
    # src_f=open('xxx','r',encoding='gbk')
    # data=src_f.readlines()
    # src_f.close()
    #
    # # for i in data:
    # #     print(i)
    # print(data)
    # dst_f=open('xxx','w',encoding='gbk')
    # # dst_f.writelines(data)
    # dst_f.write(data[0])
    # dst_f.close()
    #with open 内部封装了close 不用单独写close
    # with open('a.txt','w') as f:
    # f.write('1111 ')
    # src_f=open('xxx','r',encoding='gbk') 
    #
    dst_f=open('xxx','w',encoding='gbk')

    #with 可以同时打卡多个文件 # with open('xxx','r',encoding='gbk') as src_f, # open('xxx_new','w',encoding='gbk') as dst_f: # data=src_f.read() # dst_f.write(data)#这就是从src_f中读取文件,原封不动的写到dst_f f=open('a.txt') print(f.encoding) #查看文件编码

     二进制方式读取文件;因为文件中可能不只有文本,还可能有图片等,二进制方式打开文件还能跨平台

    # f=open('test11.py','rb',encoding='utf-8') #b的方式不能指定编码
    # f=open('test11.py','rb') #b的方式不能指定编码
    # data=f.read()
    # #'字符串'---------encode---------》bytes
    # #bytes---------decode---------》'字符串'
    # print(data)
    # print(data.decode('utf-8'))
    # f.close()
    
    
    # f=open('test22.py','wb') #b的方式不能指定编码
    # f.write(bytes('1111
    ',encoding='utf-8'))
    # f.write('杨件'.encode('utf-8'))
    
    f=open('test22.py','ab') #b的方式不能指定编码
    # f.write('杨件'.encode('utf-8'))
    
    # open('a;ltxt','wt')

     文件的其他操作:

    # f=open('a.txt','r+',encoding='gb2312')
    # # data=f.read()
    # # print(data)
    # f.write('你好')
    
    # f=open('b.txt','r+',encoding='latin-1')
    # data=f.read()
    # print(data)
    # f.write('aaaaaaaaaaa')
    
    # f=open('b.txt','r',encoding='utf-8',newline='') #读取文件中真正的换行符号
    # f=open('b.txt','r+',encoding='utf-8',newline='') #读取文件中真正的换行符号
    
    # print(f.closed)
    # print(f.encoding)
    # f.flush()
    # print(f.readlines())
    
    # print(f.tell())
    # f.readline()
    # print(f.tell())
    
    # f.seek(1)
    # print(f.tell())
    # print(f.readlines())
    # f.seek(3)
    # print(f.tell())
    # print(f.read())
    
    # data=f.read(1)
    # print(data)
    
    # f.truncate(10)
    
    
    # f.flush() #讲文件内容从内存刷到硬盘
    #
    # f.closed #文件如果关闭则返回True
    #
    # f.encoding #查看使用open打开文件的编码
    # f.tell() #查看文件处理当前的光标位置
    #
    # f.seek(3) #从开头开始算,将光标移动到第三个字节
    # f.truncate(10) #从开头开始算,将文件只保留从0-10个字节的内容,文件必须以写方式打开,但是w和w+除外
    #
    # f=open('d.txt','r',newline='')
    #
    # data=f.readline().encode('utf-8')
    # print(data)
    # print(f.tell())
    
    
    
    
    
    
    
    # f=open('seek.txt','r',encoding='utf-8')
    # print(f.tell())
    # f.seek(10)
    # print(f.tell())
    # f.seek(3)
    # print(f.tell())
    
    # f=open('seek.txt','rb')
    # print(f.tell())
    # f.seek(10,1)
    # print(f.tell())
    # f.seek(3,1)
    # print(f.tell())
    
    
    # f=open('seek.txt','rb')
    # print(f.tell())
    # f.seek(-5,2)
    # print(f.read())
    # print(f.tell())
    # f.seek(3,1)
    # print(f.tell())
    
    
    
    
    
    
    
    
    
    # f=open('日志文件','rb')
    # data=f.readlines()
    # print(data[-1].decode('utf-8'))
    
    f=open('日志文件','rb')
    
    # for i in f.readlines():
    #     print(i)
    
    #循环文件的推荐方式
    # for i in f:
    #     print(i)
    
    for i in f:
        offs=-10
        while True:
            f.seek(offs,2)
            data=f.readlines()
            if len(data) > 1:
                print('文件的最后一行是%s' %(data[-1].decode('utf-8')))
                break
            offs*=2
  • 相关阅读:
    ASP.NET Core新书终于上市,完成今年一个目标,赠书活动
    .NET 5.0 RC2 发布,正式版即将在 11 月 .NET Conf 大会上发布
    .NET Standard 来日苦短去日长
    [C#.NET 拾遗补漏]09:数据标注与数据校验
    几个超级实用但很少人知道的 VS 技巧[更新]
    .NET 5 中 Target Framework 详解
    .NET 5.0 RC1 发布,离正式版发布仅剩两个版本
    Git 实用操作:撤销 Commit 提交(动图讲解)
    Git 实用操作:重写 Commit 历史
    [C#.NET 拾遗补漏]08:强大的LINQ
  • 原文地址:https://www.cnblogs.com/jiawen010/p/9620455.html
Copyright © 2011-2022 走看看