zoukankan      html  css  js  c++  java
  • 文件处理b模式与文件操作的其它方法

    '''文件处理b模式'''
    
    # f = open('笑纳', 'rb', encoding='utf-8') # b的方式不能指定编码,字节的形式读取
    # f = open('笑纳', 'rb')
    # data = f.read() # 在win系统中,换行其实是
    ;linux系统是
    
    # 字符串--encode-->字节****字节--decode-->字符串
    # print(data.decode('utf-8')) # 这个是字节转换成字符串,用decode()函数进行解码
    # f.close()
    
    # f1 = open('笑纳', 'wb') # b的方式不能指定编码,以字节的形式写入
    # f1.write(bytes('你好啊
    ', encoding='utf-8')) # bytes()函数是将字符串转换成字节
    # f1.write('你好'.encode('utf-8')) # 这个是字符串转换成字节,用encode()函数进行编码
    # f1.close()
    
    # f2 = open('笑纳', 'ab')
    # f2.write('这是ab追加模式'.encode('utf-8'))
    # f2.close()
    
    #总结:open()函数默认是读'r'以及文本文件't',所以对于其他类型文件二进制可以处理;二进制可以跨平台;linux系统默认是二进制,所以b模式无效
    
    
    '''文件操作的其它方法'''
    
    # f = open('笑纳', 'r', encoding='utf-8', newline='') # python把win系统的换行自动处理为
    ,加上newline=''关键字即可完整显示换行符为
    
    # print(f.closed) # 判断文件是否关闭,关闭则返回True
    # print(f.encoding) # 取的是文件打开的编码,也就是open()函数里所写的编码,与源文件以何种编码存放到硬盘没有关系
    # f.flush() # 刷新文件,文件是读取到内存当中,做更改操作也是存储在内存,使用此方法可以将修改后的文件刷新到硬盘中
    # f.name # 文件名
    # print(f.readlines())
    # print(f.tell()) # 打印光标所处位置,1个中文为3个字节(utf-8);注意:read(3)代表读取3个字符,其余的文件内光标移动都是以字节为单位如seek,tell,truncate
    # f.readline()
    # print(f.tell())
    # f.seek(2) # 控制光标的移动,以字节为单位;当光标移动到一个字节的字符中间时,此时打印会报错,起始字节错误
    # print(f.tell())
    # print(f.readline()) # 打印光标所处位置后面的内容
    # print(f.read(1)) # 读取几个字符,换行有两个字符
    
    
    # f = open('笑纳', 'r+', encoding='utf-8')
    # f.truncate(40) # 截取,属于写操作;把X个字节以内的内容保留,余后的都删除;w和w+除外
    
    
    '''文件seek方法补充(0,1,2)'''
    
    # f = open('笑纳', 'r', encoding='utf-8')
    # f.seek(10, 0) # 0代表绝对位置,光标从文件开头开始
    # print(f.tell())
    
    # f = open('笑纳', 'rb')
    # f.seek(3, 1) # 从相对位置开始移动光标,也就是上次停留的位置
    # print(f.tell())
    # f.seek(3, 1)
    # print(f.tell())
    
    # f = open('笑纳', 'rb')
    # f.seek(0, 2) # 当第一个参数为非负数时,默认光标在文件末尾,然后再移动X个字符
    # print(f.tell())
    # f.seek(-7, 2) # 当第一个参数为负数时,表示从文件末尾向前移动X个字符
    # print(f.tell())
    # print(f.read())
    
    
    # 循环文件的推荐方式
    # f = open('笑纳', 'rb')
    # for i in f:
    #  print(i)
    
    # 如何打印日志文件的最后一行
    # f = open('笑纳', 'rb')
    # for i in f:
    #  offs = -3
    #  while True:
    #     f.seek(offs, 2)
    #     data = f.readlines()
    #     if len(data) > 1:
    #        print('最后一行内容是:%s' % data[-1].decode('utf-8'))
    #        break
    #     offs *= 2
    # 后面这些打开文件操作都忘记关闭文件了。。。
    while True: print('studying...')
  • 相关阅读:
    C & 指针
    分析Android (build/core/*.mk脚本)
    C#.net调用axis2webService
    MongoDB 配置文件启动
    mongodb 简单部署方案及实例
    MongoDB 权限认证
    MongoDB索引介绍
    mongodb 全文检索
    MongoDB 覆盖索引查询
    mongodb MongoDB 聚合 group
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14444342.html
Copyright © 2011-2022 走看看