• python 文件操作


    读取文件:r,只读不能写,文件不存在报错

    #打开文件
     file_object=open('log.txt',mode="r", encoding='utf-8')#读取:mode为r,只读不能写,文件不存在,报错
    # 读取内容,
     content=file_object.read()
     print(content)
    #关闭文件
     file_object.close()

    写入文件:w,只写不能读(先清空文件),文件不存在则新建

    #打开文件
     file_object=open('looooog.txt',mode="w", encoding='utf-8')#mode为 w,write(只写,先清空,一般用于新建文件)
    #写内容
    file_object.write("李伟")
    #关闭文件
    file_object.close()

    写入文件:a只追加不能读,文件不存在新建

    
    
    #打开文件
    file_object=open('log.txt',mode="a", encoding='utf-8')#写入:a,只在尾部追加不读,文件不存在新建
    #写内容
    v=file_object.write("您好啊")
    #关闭文件
    file_object.close( )
     

    可读可写
    读取,写入:r+,从文件头开始写,保留原文件中没有被覆盖的内容

    file_object = open('log.txt',mode='r+',encoding='utf-8')
    file_object.seek(2) # 调整光标的位置,2表示2字节
    
    content = file_object.read()#读当前光标后面的内容
    file_object.write('')
    
    # 读取内容content = file_object.read()print(content)file_object.write('666')#末尾添加666
    
    #关闭文件
    file_object.close()

    可读可写

    w+,打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

    写入时会将文件清空,读取时需要调整光标

     

    file_object = open('log.txt',mode='w+',encoding='utf-8')
    data = file_object.read()
    print(data)
    file_object.write('alex')
    file_object.seek(0)
    data = file_object.read()
    print(data)
    file_object.close()
    可读可写:a+,默认追加时光标永远在最后
    file_object = open('log.txt',mode='a+',encoding='utf-8')
    
    # file_object.seek(0)
    # data = file_object.read()
    # print(data)
    
    file_object.seek(0)#即使光标移到最前面
    file_object.write('666')#写仍追加到最后
    
    file_object.close()
    读操作
    file_object = open('log.txt',mode='r',encoding='utf-8')
    
    # 读取文件的所有内容到内存
    # data = file_object.read()
    
    # 从当前光标所在的位置向后读取文件两个字符
    # data = file_object.read(2)
    
    # 读取文件的所有内容到内存,并按照每一行进行分割到列表中。
    # data_list = file_object.readlines()
    # print(data_list)
    
    # 如果以后读取一个特别大的文件 (**********)
    # for line in file_object:
    #     line = line.strip()#除去里面的换行
    #     print(line)
    
    # file_object.close()

    写操作

    file_object = open('log.txt',mode='w',encoding='utf-8')
    file_object.write('asdfadsfasdf
    ')
    file_object.write('asdfasdfasdfsadf')
    file_object.close()

    练习题

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # 练习1:请将user中的元素根据 _ 链接,并写入 'a1.txt' 的文件
    """
    user = ['alex','eric']
    data = "_".join(user)
    file_object = open('a1.txt',mode='w',encoding='utf-8')
    file_object.write(data)
    file_object.close()
    """
    
    # 练习2:请将user中的元素根据 _ 链接,并写入 'a1.txt' 的文件
    """
    user = [
        {'name':'alex','pwd':'123'},    # alex|123
        {'name':'eric','pwd':'olbody'}, # eric|olbody
    ]
    file_object = open('a2.txt',mode='w',encoding='utf-8')
    for item in user:
        line = "%s|%s
    " %(item['name'],item['pwd'],)
        file_object.write(line)
    file_object.close()
    """
    
    # 练习3:请将a2.txt中的文件读取出来并添加到一个列表中 ['alex|123','eric|olbody']
    # 方式一
    """
    file_obj = open('a2.txt',mode='r',encoding='utf-8')
    content = file_obj.read()
    file_obj.close()
    content = content.strip()
    data_list = content.split('
    ')
    print(data_list)
    """
    
    """
    result = []
    file_obj = open('a2.txt',mode='r',encoding='utf-8')
    for line in file_obj:
        line = line.strip()
        result.append(line)
    file_obj.close()
    print(result)
    """

    总结

    注意:读取文本文件时,Python将其中的所有文本都解读为字符串,如果你读取的是数字,必须使用int()将其转换

    - 打开
      - r,只能读。 【**- w,只能写,写之前清空。 【**- a,只能追加。【*- r+
        - 读:默认从0的光标开始读。也可以通过 seek 调整光标的为位置。
        - 写:若光标在0位置,则会覆盖0光标后面的字,从光标所在的位置开始写,也可以通过 seek 调整光标的位置。
      - w+
        - 读:默认光标永远在写入的最后或0,也可以通过 seek 调整光标的位置。
        - 写:先清空。
      - a+
        - 读:默认光标在最后,也可以通过 seek 调整光标的位置。然后再去读取。
        - 写:永远写到最后。
    
    • 操作

        • read()

        • read(2) # 字符

        • readlines()#readlines()从文件中读取每一行,并将其存储在一个列表

      • write

    • 关闭

  • 相关阅读:
    Android 默认壁纸 简单分析
    Makefile中override 指示符
    在linux内核中 读写上层文件
    Sqlite数据库操作的sql操作语句
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_lookup-method
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_lifecycle-init
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_lifecycle-destroy
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_GetFieldFactoryBean
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_BeanNameAware
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_abstract
  • 原文地址:https://www.cnblogs.com/tengteng0520/p/11246935.html
Copyright © 2020-2023  润新知