zoukankan      html  css  js  c++  java
  • python之路_文件操作解析

    文件操作

    一、操作文件三要素
    1. 路径    #文件存放的具体位置的路径
    2. 编码    #文件打开的的编码格式:utf-8
    3. 模式
      - rb:以字节的方式只读

    obj = open('D:美女模特空姐护士联系方式.txt',mode='rb')
    content = obj.read() 
    obj.close()
    print(content,type(content))   #字节类型

      - r: 读取utf-8编码数据,【转换】成unicode(str)编码的数据

    #实例:
    obj=open('D:美女模特空姐联系式.txt',encoding='utf-8',mode='r')  
    content=obj.read()
    obj.close()
    print(content)    #字符串格式

      - r+:先读后写 

    # 情况一:
    obj = open('D:美女模特空姐护士联系式.txt',mode='r+',encoding='utf-8')
    data = obj.read() 
    # obj.write('6')     # 在最后继续写
    obj.close()
    print(data)
    # 情况二:
    obj = open('D:美女模特空姐护士联系式.txt',mode='r+',encoding='utf-8')
    data = obj.read() 
    obj.seek(3)
    obj.write('6')      # 定位到指定位置写
    obj.close()
    print(data) 
    说明: 
      data = obj.read()             # 读取所有文件内容
      data = obj.read(2)             # r模式:字符;rb模式:字节
      obj.seek(2)             # 永远是字节,指定指针位置
      obj.tell() # 读取当前指针的位置

      - r+b
      - wb

    实例:
    obj = open('美女.txt',mode='wb')
    obj.write("海角-贾敏22222".encode('utf-8'))
    obj.close()

      - w:只读

    实例:
    obj = open('美女.txt',mode='w',encoding='utf-8')
    obj.write("海角-贾敏")
    obj.close()

      - w+:先读后写
      - w+b

      - ab:只追加

    #实例:
    obj = open('美女.txt',mode='ab')
    obj.write("龙哥".encode('utf-8'))
    obj.close()

      - a:只追加

    #实例:
    obj = open('美女.txt',mode='a',encoding='utf-8')
    obj.write("小红")
    obj.close()

      - a+
      - a+b
    功能:
      obj = open(文件路径,mode='rb')
      obj.read()
      obj.write()
      obj.seek()
      obj.tell()
      obj.close()
      obj.flush()
        obj.readline()
       
    PS: 打开文件后,记着关闭文件

    手动关闭:
      obj = open(文件路径,mode='rb')
      xxxx
      obj.close()
    自动关闭:
      with open(文件路径,mode='rb') as obj:
      obj.read()    # 代码执行完毕后,自动关闭文件

    二、文件逐行读取循环

    例:

    f=open('user.txt',encoding='utf-8',mode='r')
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    for line in f:
        val= line.strip().split('|')
        if name==val[0] and pwd==val[1]:
            print("登陆成功!")

    注释:循环结束指针并未回到文件起始位置两种方法可以实现:重新打开文件或者f.seek(0)将指针强制放回起始位置

    三、文件操作重点方法介绍

    1、只读方法实例:

    f = open('file',encoding='utf-8')                #f文件句柄、文件操作符,默认只读模式
    content1 = f.read()                              #read 读整个文件 返回一个字符串
    f.seek(0)                                        #将指针重新定位到文件起始,否则后面read方法无法执行
    content2 = f.readlines()                         #read 读整个文件 返回一个列表
    f.seek(0)
    content3 = f.readline()                          #readline 读一行
    f.close()
    print(content1)
    print(content2)
    print(content3)

    2、只写方法实例:(慎重!会将原文件内容清空)

    f = open('file','w',encoding='utf-8')  
    f.write('nezha|18|male')                         #写一个字符串
    f.writelines()                                  #将列表中的内容写入文件
    f.close()  

    3、读写方法实例:

    f = open('file','r+',encoding='utf-8')
    print(f.readline())
    f.write('wusir|66|male')
    f.close()
    #输出结果说明:输出第一行,并在原文件夹最后追加写的内容

      说明:(1)打开文件的时候:不清空文件  (2)当用户读取操作之后,写的所有内容都变成追写  (3)当用户不执行读操作,写默认从开始覆盖

    4、文件修改实例:

    f = open('file',encoding='utf-8')
    f2 = open('file_bak','w',encoding='utf-8')             #文件本身不存在
    for line in f:
        user_list = line.split('|')
        print(user_list)
        user_list[0] = user_list[0]+'_somebody'
        #print(user_list)
        user_str = '|'.join(user_list)
        print(user_str)
        f2.write(user_str)
    f.close()
    f2.close()
    import os                                              #模块- 用来和操作系统交互的模块
    os.remove('file')                                      #删除一个文件
    os.rename('file_bak','file')                           #重命名一个文件
  • 相关阅读:
    JVM字节码(七)
    JVM字节码(六)
    JVM字节码(五)
    JVM字节码(四)
    JVM字节码(三)
    JVM字节码(二)
    JVM字节码(一)
    JVM类加载器(五)
    JVM类加载器(四)
    php之 人员的权限管理
  • 原文地址:https://www.cnblogs.com/seven-007/p/7425955.html
Copyright © 2011-2022 走看看