【黑马程序员】Python文件操作

news2024/11/17 2:29:54

文章目录

  • 文件操作
    • 文件编码
      • 什么是编码
      • 为什么要使用编码
    • 文件的读取
      • open
      • model常用的三种基础访问模式
      • 读操作相关方法
    • 文件的写入
      • 注意
      • 代码示例

文件操作

文件编码

什么是编码

  • 编码就是一种规则集合,记录了内容和二进制间进行互相转换的规则

  • 最常用的是UTF-8编码

为什么要使用编码

  • 计算机内部保存的都是0和1,所以需要将内容全部转换为0和1才能识别

  • 读取时需要将计算机中保存的0和1转为内容

文件的读取

open

  • 语法
open(name, mode, encoding)
name    要打开的目标文件名的字符串
mode    打开文件的模式:只读、写入、追加
encoding    编码格式,推荐使用UTF8

model常用的三种基础访问模式

在这里插入图片描述

读操作相关方法

  • read方法
文件对象.read(num)
num    表示要从文件中读取的数据长度,单位是字节,如果没有传,读取文件中所有的数据
  • readlines():可以按照行的方式把整个文件的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

  • readline()读取文件的一行

  • for循环读取文件行

  • close()关闭文件对象

  • with open语法:用于打开文件并在使用完毕后自动关闭文件

在这里插入图片描述

  • 代码示例
# *_*coding:utf-8 *_*
# 打开文件
f = open("./read_file.py", 'r', encoding="UTF-8")
# 读取文件
print(f'读取50个字节的结果{f.read(50)}')
# 在程序中多次调用read,下一次会从上一次读的偏移结尾继续读
print(f'读取全部字节的结果{f.read()}')

# readlines读取文件的全部行,封装到列表中
print(f'读取文件的全部行{f.readlines()}')

# readline一次读取文件一行
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print(f'第一行数据是:{line1}')
print(f'第二行数据是:{line2}')
print(f'第三行数据是:{line3}')

# 关闭文件
f.close()

# for循环读取文件行
for line in open("./read_file.py", "r"):
    print(line)

# with open语法
with open("./read_file.py", "r", encoding="UTF-8") as f:
    print(f'{f.readlines()}')

文件的写入

注意

  • 直接调用write方法,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区

  • 当调用flush的时候,内容会真正写入文件

  • 目的:避免频繁磁盘操作,导致效率下降

  • close方法内置了flush功能

  • w模式

    • 文件不存在则创建

    • 文件存在则清空

  • a模式

    • 文件不存在则创建

    • 文件存在则追加尾部写

代码示例

# *_*coding:utf-8 *_*

# open打开文件,使用覆盖写操作
f = open("test.txt", "w", encoding="UTF-8")
# write写入
f.write("123456789")
# flush刷新
f.flush()
# 关闭文件
f.close()

# open打开文件,使用追加写操作
f = open("test1.txt", "a", encoding="UTF-8")
# write写入
f.write("123456789")
# flush刷新
f.flush()
# 关闭文件
f.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

魔法手链(burnside+矩阵优化+dp acwing 3134)

题目&#xff1a;3134. 魔法手链 - AcWing题库 思路&#xff1a; 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #i…

史上最全Spring教程,从零开始带你深入♂学习(三)—

减少数据处理量&#xff0c;提高查询效率 (一)使用Limit分页 –从第2个开始查询&#xff0c;每一页10个 select * from user limit 2,10 –从第0个开始查询&#xff0c;每一页10个 SELECT * from user limit 10; 领取资料 (二)使用Mybatis实现分页&#xff0c;核心SQL 1、编…

小文件问题及GlusterFS的瓶颈

01海量小文件存储的挑战 为了解决海量小文件的存储问题&#xff0c;必须采用分布式存储&#xff0c;目前分布式存储主要采用两种架构&#xff1a;集中式元数据管理架构和去中心化架构。 (1)集中式元数据架构&#xff1a; 典型的集中式元数据架构的分布式存储有GFS&#xff0…

一、NLP中的文本分类

目录 1.0 文本分类的应用场景 1.1 文本分类流程 ​编辑 1.2 判别式模型 1.3 生成式模型 1.4 评估 1.5 参考文献 NLP学习笔记系列&#xff0c;欢迎收藏交流&#xff1a; 零、自然语言处理开篇-CSDN博客 一、NLP中的文本分类-CSDN博客 二、NLP中的序列标注&#xff08;分…

413 Request Entity Too Large 问题如何解决

遇到“413 Request Entity Too Large”错误通常意味着你尝试上传或提交到服务器的数据量超过了服务器能够处理的限制。这个问题通常与Web服务器的配置相关&#xff0c;比如Nginx或Apache。这个问题出现在使用Nginx作为Web服务器的环境中。这里有几种解决方法&#xff1a; 1. 调…

openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断

文章目录 openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断242.1 SQL自诊断242.1.1 告警场景242.1.2 规格约束 openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断 SQL调优是一个不断分析与尝试的过程&#xff1a;试跑Query&…

流水账-20240314

目录 Linux系统删除文件后&#xff0c;磁盘大小没变化mysql事务和neo4j事务冲突误诊描述解决方法网上提供的方法重置Neo4j密码&#xff0c;成功解决问题高版本低版本 Linux系统删除文件后&#xff0c;磁盘大小没变化 lsof L1|grep 删除的文件名kill进程 mysql事务和neo4j事务…

面试题系列一之-css画三角形(原理解析)

用html写一个三角形的图标算是一个比较简单的,但是工作中用的还是比较多的&#xff0c;面试也可能会问&#xff0c;但了解背后的原理才能熟练使用 我们首先写一个div,设置边框 <body><div class"border"></div> </body> <style> .bo…

华宽通招商资源推介平台:一站式立体展示,招商资源尽在眼前

传统园区在招商引资推介过程中&#xff0c;主要以画册、PPT、视频等形式进行介绍&#xff0c;对于客商来说体验感不佳&#xff0c;难以通过地理信息、空间信息和图文信息结合的方式&#xff0c;更加直观和立体地呈现园区整体优势和每个载体资源的详细情况&#xff0c;导致客商无…

基于SpringBoot的“家政服务管理平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“家政服务管理平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 服务信息界面…

DeleteFile(szFilePath)失败,之后再对文件操作,造成崩溃

调用WINAPI函数DeleteFile(szFilePath1)之后&#xff1a; 1.如果不再对szFilePath1文件进行操作 DeleteFile()函数执行失败》也不会造成 软体崩溃&#xff01; 2.如果后续需要对szFilePath1文件进行操作 DeleteFile()函数执行失败》就会造成 软体崩溃&#xff01; 所以&…

【刷题训练】LeetCode:557. 反转字符串中的单词 III

557. 反转字符串中的单词 III 题目要求 示例 1&#xff1a; 输入&#xff1a;s “Let’s take LeetCode contest” 输出&#xff1a;“s’teL ekat edoCteeL tsetnoc” 示例 2: 输入&#xff1a; s “Mr Ding” 输出&#xff1a;“rM gniD” 思路&#xff1a; 第一步&am…

Clickhouse MergeTree 原理(一)

作者&#xff1a;俊达 MergeTree是Clickhouse里最核心的存储引擎。Clickhouse里有一系列以MergeTree为基础的引擎&#xff08;见下图&#xff09;&#xff0c;理解了基础MergeTree&#xff0c;就能理解整个系列的MergeTree引擎的核心原理。 本文对MergeTree的基本原理进行介绍…

目标检测——YOLOv3算法解读

论文&#xff1a;YOLOv3&#xff1a;An Incremental Improvement 作者&#xff1a;Joseph Redmon, Ali Farhadi 链接&#xff1a;https://arxiv.org/abs/1804.02767 代码&#xff1a;http://pjreddie.com/yolo/ YOLO系列其他文章&#xff1a; YOLOv1通俗易懂版解读SSD算法解读…

pgsql常用索引简写

文章来源&#xff1a;互联网博客文章&#xff0c;后续有时间再来细化整理。 在数据库查询中&#xff0c;合理的使用索引&#xff0c;可以极大提升数据库查询效率&#xff0c;充分利用系统资源。这个随着数据量的增加得到提升&#xff0c;越大越明显&#xff0c;也和业务线有关…

操作系统总结(第二周 第一堂)

前言&#xff1a; 第一周的重点就在于一张图表&#xff1a; 基于这张图&#xff0c;我们将陷入内核分为了两个大块Trap和Interrupt。同时我们知道一件事情任何一次I/O操作或者错误程序操作都将陷入内核&#xff0c;从而使得内核可以监控所有的外部设备以及维护整个电脑程序运行…

PowerPoint 2010

文章目录 一、界面介绍二、选项卡1. 文件选项卡2. 开始选项卡3. 插入选项卡4. 设计选项卡5. 切换选项卡6. 动画选项卡7. 幻灯片放映选项卡8. 视图选项卡9. 效果识别 三、幻灯片操作1.选择幻灯片2.移动(调整幻灯片顺序&#xff09;和复制3.删除幻灯片 四、幻灯片放映1.按次序放映…

FX110网:1月美国零售货币资金环比上升2.61%,嘉盛环比上升1.86%

美国商品期货交易委员会&#xff08;CFTC&#xff09;发布的最新月度报告显示&#xff0c;2024年1月零售货币存款与上月相比上升2.61%。 这份报告涵盖在美国运营的注册零售货币对交易商&#xff08;RFED&#xff09;和经纪自营商。包括嘉信理财&#xff08;CHARLES SCHWAB Futu…

由世界第一个AI软件工程师Devin引发的热潮背后----程序员到底会不会被代替?AI发展至如今是否初衷已变?

目录 一.Devin的登场是突破也是导火索 二.Devin的"逆天"能力 1、端到端构建和部署程序 2、自主查找并修复bug 3、训练和微调自己的AI模型 4、修复开源库 5、成熟的生产库也能做贡献 6、学习能力 三.Devin的出现甚至整个AI领域的进步,编程还有未来吗? 1.业…

PyQt6实战1

创建一个json处理的小工具 功能&#xff1a; 1.json格式化 2.jsonpath提取数据 3.保存文件 main.py from PyQt6.QtGui import QFocusEvent from PyQt6.QtWidgets import * from PyQt6.QtCore import * from PyQt6.QtGui import * import sys import json import time impo…