首页 > 其他分享 >每日一节

每日一节

时间:2022-10-09 08:22:15浏览次数:43  
标签:一节 文件 encoding utf8 每日 模式 print open

今日小节汇总

文件操作

利用python代码的编写来读写文件

  • 文件的概念
  • 文件的操作方式
  • 文件读写模式
  • 文件操作模式
  • 文件诸多方法
  • 文件内容修改
  • 文件光标移动

详解

文件操作

  1. 文件的概念
  • 就是操作系统暴漏给用户操作硬盘的快捷方式
    • eg:双击一个文件,其实是从硬盘将数据加载到内存
    • ctrl+s保存文件,其实是将内存中的数据刷到硬盘保存
  1. 代码打开文件的两种方式
  • 方式一:
    f = open(文件路径,读写模式,encoding='utf8')
    f.close()
    
  • 方式二:
    with open('a.txt','r', encoding='utf8') as f1:
    with子代码块
    ps:with上下文管理好处在于子代码运行结束自动调用close方法关闭资源
    
  1. 强调
    open方法的第一个参数是文件路径 并且撬棍跟一些字母的组合会产生特殊的含义导致路径查找混乱 为了解决该问题可以在字符串的路径前面加字母r
    D:\a\n\t
    r'D:\a\n\t'
    以后涉及到路径的编写 推荐加上r
    
    with支持一次性打开多个文件
    with open() as f1,open() as f2,open() as f3:
    	子代码
    

文件读写模式

  1. 'r'只读模式:只能读不能写
    # 1.文件路径不存在:会直接报错
    # with open(r'b.txt','r',encoding='utf8') as f:
    #     print(f.read())
    # 2.文件路径存在:正常读取文件内容
    with open(r'a.txt', 'r', encoding='utf8') as f:
        print(f.read())
    
  2. 'w'只写模式:只能写不能看
    # 1.文件路径不存在:自动创建
    # with open(r'b.txt', 'w', encoding='utf8') as f:
    #     pass
    # 2.文件路径存在:先清空文件内容 之后再写入
    with open(r'a.txt', 'w', encoding='utf8') as f:
        f.write('假期综合征 赶紧要调整\n')
        f.write('假期综合征 赶紧要调整\n')
        f.write('假期综合征 赶紧要调整\n')
    强调:换行符需要自己添加 并且在后续数据读取比对的时候也一定要注意它的存在
    
  3. 'a'只追加模式:文件末尾添加数据
    # 1.文件路径不存在:自动创建
    # with open(r'c.txt', 'a', encoding='utf8') as f:
    #     pass
    # 2.文件路径存在:自动在末尾等待追加内容
    with open(r'a.txt', 'a', encoding='utf8') as f:
        f.write('放假七天和上班七天感觉是完全不一样的')
    
    """
    当我们在编写代码的时候 有些部分不知道写什么具体代码 但是也不能空着不写
    这个时候可以使用关键字
    	pass
    	...
    只补全语法不执行功能 本身没有任何的含义
    """
    

文件操作模式

  • 't'文本模式
    • 默认的模式,我们上面所写的r、w、a其实全称是rt、wt、at
      • 只能操作文本文件
      • 读写都是以字符为单位
      • 需要指定encoding参数,如果不知道则会采用计算机默认的编码
  • 'b'二进制模式(bytes模式)
    • 不是默认的模式,需要自己指定rb、wt、at
      • 可以操作任意类型的文件
      • 读写都是以bytes为单位
        不需要指定encoding参数,因为它已经是二进制模式,不需要编码
  • 二进制模式与文本模式针对文件路径是否存在的情况下,规律是一样的!!!

文件诸多方法

  1. read()
    • 一次性读取文件内容 并且光标停留在文件末尾 继续读取则没有内容
    • 并且当文件内容比较多的时候 该方法还可能会造成计算机内存溢出
    • 括号内还可以填写数字 在文本模式下 表示读取几个字符
  2. for循环
    • 一行行读取文件内容 避免内存溢出现象的产生
  3. readline()
    • 一次只读一行内容
  4. readlines()
    • 一次性读取文件内容,会按照行数组织成列表的一个个数据值
  5. readable()
    • 判断文件是否具备读数据的能力
  6. write()
    • 写入数据
  7. writeable()
    • 判断文件是否具备写数据的能力
  8. wrtelines()
    • 接受一个列表,一次性将列表中所有的数据值写入
  9. flush()
    • 将内存中文件数据立刻刷到硬盘,相当于ctrl+s功能

文件内光标的移动

with open(r'a.txt', 'rb') as f:
    print(f.read())
    f.seek(0,0)
    print(f.read())
    f.seek(0, 0)
    print(f.read())
    # print(f.read(2).decode('utf8'))
    # f.seek(-1, 2)
    # print(f.tell())  # 返回光标距离文件开头产生的字节数
    """
    seek(offset, whence)
        offset是位移量 以字节为单位
        whence是模式   0  1  2
            0是基于文件开头
                文本和二进制模式都可以使用
            1是基于当前位置
                只有二进制模式可以使用
            2是基于文件末尾
                只有二进制模式可以使用
    """
    # print(f.read(3).decode('utf8'))

标签:一节,文件,encoding,utf8,每日,模式,print,open
From: https://www.cnblogs.com/gaoli111/p/16770887.html

相关文章

  • C语言每日一题——第十二天
    第十二天小明今天要挑战一下算法!他的算法第一课是:二分查找。小明随意设置了一个函数:\(y=x^2+2x-1,x\in(-10^4,10^4)\)。他将使用二分法,找出给出的数字所在区间,精度为\(\p......
  • 每日一结
    576.出界的路径数采用剪枝和记忆搜索的方法。当加上dir之后的坐标值,越界时,说明找到了出路,此时return1;当没有移动步数的时候,直接return0;当当前的坐标值加/减移动步数......
  • C语言每日一题——第十一天
    第十一天还记得在第三天写的斐波那契数列程序吗?小明最初想用这个函数作为随机数生成器的。今天,小明决定重新拾起这个函数,用于生成随机数……输入程序在运行时通过getcha......
  • 每日一结
    2.01背包问题初始化物品多一行,价格多一列。ans[0][0]=0;26.删除有序数组中的重复项采用双指针的做法。left=0for(intright=1;right<nums.length;right......
  • 每日总结
    20221007前些天系主任让我们进行民航机票代理市场的预测及可视化题目如下:石家庄铁道大学2022年秋季  20020 级课堂测试试卷-HIVE数据分析课程名称: 大型数据库应用......
  • 第一节的课
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ int  return0;}//intmain()//{// {// inta=2;// printf("a=%d\n",a);/*这个地方......
  • 第一节 身份认证的基本流程
    前言    先感谢涛哥写了这么好的文章​    学习完孤傲苍狼和涛哥的博客,觉得分享知识是一种进步,原因很简单:能把别人教会了的博客,一定是好博客。我始终相信,写......
  • C语言每日一题——第十天
    第十天随着对指针了解的深入,小明决定进一步尝试指针的使用。他写出一个程序,用于判断给定数组内最长连续字母串的长度。运行:main.exeabcdefea输出:6解释:ab......
  • 每日一结
    剑指Offer55-II.平衡二叉树判断深度得函数。左右子树得深度差<2&&左右子树均是平衡二叉树。剑指Offer55-I.二叉树的深度returnroot==null?0:Math.......
  • 有道词典_每日一句_2022/10
    10月 Mayourcountryproserandthepeopleliveapeacefullife!愿祖国繁荣富强,人民安居乐业。——2022.10.01Thebestyearsofyourlifearestillaheadof......