Python入门到精通(七)——Python文件操作

news2025/2/5 6:04:11

Python文件操作

一、文件的编码

二、文件的读取

1、操作汇总

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

三、文件的写入

四、文件的追加

五、综合案例


一、文件的编码

1、什么是编码?

  • 编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。
  • 编码有许多中,我们最常用的是UTF-8编码

2、为什么要使用编码?

  • 计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中
  • 同时也需要编码, 将计算机保存的0和1,反向翻译回可以识别的内容

二、文件的读取

1、操作汇总

  • name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
  • mode:设置打开文件的模式(访问模式):只读、写入、追加等。
  • encoding:编码格式(推荐使用UTF-8)
  • 多次调用时,会在上一个结尾处继续读取

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

练习题

通过Windows的文本编辑器软件,将如下内容,复制并保存到,文件可以存储在任意位置
 

beijing shanghai CSDN
shenzhen guangzhou CSDN
wuhan hangzhou CSDN
zhengzhou bigdata CSDN

通过文件读取操作,读取此文件,统计CSDN单词出现的次数

代码示例

# 练习
# 打开文件,以读取模式打开
f = open("F:/学习资料/Python/黑马/资料/test1.txt", "r", encoding="UTF-8")
# 方式1:读取全部内容,通过字符串count方法计数
content = f.read()
count = content.count("CSDN")
print(count)  # 4
# 方式2:一行一行读取,判断出现次数并累计
count = 0
for line in f:
    line = line.strip()  # 去除开头结尾空格和换行符
    words = line.split(' ')
    for word in words:
        if word == 'CSDN':
            count += 1
print(count)  # 4
# 关闭文件
f.close()

三、文件的写入

  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush()的时候,内容会真正写入文件
  • close()方法,带有flush()方法的功能,这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)
  • 文件如果不存在,使用”w”模式,会创建新文件
  • 文件如果存在,使用”w”模式,会将原有内容清空

代码示例

# 文件的写入 w
# 存在,清空重写  不存在,新建文件,写入
f = open("F:/学习资料/Python/黑马/资料/test1.txt", "w", encoding="UTF-8")
f.write('hello world')  # 内容写入到内存中
# flush刷新
f.flush()
# 关闭文件
f.close()

四、文件的追加

  • a模式,文件不存在会创建文件
  • a模式,文件存在会在最后,追加写入文件
  • 可以使用”\n”来写出换行符

代码示例

# 文件的追加 a模式
f = open("F:/学习资料/Python/黑马/资料/test1.txt", "a", encoding="UTF-8")
f.write('\n欢迎来到csdn')  # 换行追加
# flush刷新
f.flush()
# 关闭文件
f.close()

追加前

追加后

五、综合案例

练习题

有一份账单文件,记录了消费收入的具体记录,内容如下,可以将内容复制并保存为 bill.txt文件

name, date,money, type, remarks
周杰轮,2022-01-01,100000,消费,正式
周杰轮,2022-01-02,300000,收入,正式
周杰轮,2022-01-03,100000,消费,测试
林俊节,2022-01-01,300000,收入,正式
林俊节,2022-01-02,100000,消费,测试
林俊节,2022-01-03,100000,消费,正式
林俊节,2022-01-04,100000,消费,测试
林俊节,2022-01-05,500000,收入,正式
张学油,2022-01-01,100000,消费,正式
张学油,2022-01-02,500000,收入,正式
张学油,2022-01-03,900000,收入,测试
王力鸿,2022-01-01,500000,消费,正式
王力鸿,2022-01-02,300000,消费,测试
王力鸿,2022-01-03,950000,收入,正式
刘德滑,2022-01-01,300000,消费,测试
刘德滑,2022-01-02,100000,消费,正式
刘德滑,2022-01-03,300000,消费,正式

代码示例

# 综合案例
# 打开文件得到文件对象,准备读取
fr = open("F:/学习资料/Python/黑马/资料/bill.txt", "r", encoding="UTF-8")
# 打开文件得到文件对象,准备写入
fw = open("F:/学习资料/Python/黑马/资料/bill.txt.bak", "w", encoding="UTF-8")
# for循环读取文件
for line in fr:
    line = line.strip()  # 去除开头结尾空格和换行符
    # 判断内容,将满足的内容写出
    if line.split(',')[4] == '测试':
        continue
    # 将内容写出去
    fw.write(line)
    # 由于前面进行了strip操作,需要手动换行
    fw.write('\n')
# close两个文件对象
fr.close()
fw.close()  # 写出文件调用close(),会自动flush()

输出

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

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

相关文章

合约短线高胜率策略-扭转乾坤指标使用说明

扭转乾坤指标使用说明 行情判断 双绿线 多趋势双红线 空趋势大绿线 小红线 多震荡大红线 小绿线 空震荡 进场条件 趋势行情进场 多趋势 多信号 底金叉 做多空趋势 空信号 顶死叉 做空 震荡行情进场 多震荡 多信号 底金叉 做多多震荡 空信号 顶死叉 做空空…

带你玩转股票的价值投资,上市公司典型案例分析

一、教程描述 上市企业,一般是新经济的典型代表,它的变化最能折射出新的商业模式及未来的产业机会。无论你是企业管理层、新兴创业者,还是职场精英及在校学生,都可以从上市公司的演变规律中,找到自己的职业晋升路径和…

LNMP环境搭建动态网站

一、环境准备 服务器:openEuler 22.03 Linux IPV4 :192.168.110.144/24 网页服务器:Nginx1.21.0 数据库:MySQL 8.0.36 PHP:8.0.30 1.安装软件 [rootnode3 ~]# yum install php-mysqlnd php php-gd php-fpm php-xml -y…

运维SRE-02 正则表达式、grep

1.特殊符号补充 1.1位置相关的特殊符号 . 当前目录 .. 当前目录的上级目录 ~ 当前用户家目录 / 根目录 cd - 返回上次所在目录1.2熟练掌握 # 注释符号,root命令提示符 | 管道符号.1.3了解其他特殊符号 $ 取值(取出变量的值),普通用户的提示符 ! % ^ & * (){} [] ; ? \…

git使用以及工作中开发流程

Git是当前最先进、最主流的分布式版本控制系统,免费、开源。 主要概念: 基本流程: 命令: git commit -a # 省略了add到暂存区的步骤,直接提交工作区的修改内容到版本库,不包括新增的文件。git fetc…

Python之PySpark简单应用

文章目录 一、介绍1.准备工作2. 创建SparkSession对象:3. 读取数据:4. 数据处理与分析:5. 停止SparkSession: 二、示例1.读取解析csv数据2.解析计算序列数据map\flatmap 三、问题总结1.代码问题2.配置问题 一、介绍 PySpark是Apa…

【Linux-常用命令】Linux 常用命令大全

【Linux-常用命令】Linux 常用命令大全 1)文件管理1.1.目录操作1.2.vim 操作1.3.打包压缩相关命令1.4.Linux 管道1.5.Linux 远程拷贝命令1.6.查看文件目录大小 2)文件权限管理2.1.三种基本权限2.2.更改权限 3)运行程序3.1.命令行运行3.2.后台…

睿尔曼超轻量仿人机械臂—外置按钮盒使用说明

睿尔曼RM系列机械臂的控制方式有很多种,包括:示教器、JSON、API等。在此为大家介绍外置按钮盒的使用方法。 按钮盒接线安装 按钮盒外观如下图所示,有:急停、暂停、开始、继续。四个功能按钮。用户可通过这四个按钮来实现对机械臂运…

FileGDB文件地理数据库的大小和名称限制

FileGDB文件地理数据库的大小和名称限制 官方链接 文件地理数据库的大小和名称限制如下: 文件地理数据库的大小 - 无限制 表或要素类大小 - 1 TB(默认值)、4 GB 或 256 TB(带关键字) 要素类和表的数量 - 2,147,483,6…

公共用例库计划--个人版(六)典型Bug页面设计与开发

1、任务概述 本次计划的核心任务是开发一个,个人版的公共用例库,旨在将各系统和各类测试场景下的通用、基础以及关键功能的测试用例进行系统性地归纳整理,并以提高用例的复用率为目标,力求最大限度地减少重复劳动,提升…

数据结构-内部排序

简介 排序(Sorting):将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列 排序算法分为内部排序和外部排序 内部排序:在排序期间数据对象全部存放在内存的排序 外部排序&am…

【c++】取地址及const取地址操作符重载

1.const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改 我们来看看下面的代码 class Date { public:Date(int year, int month,…

2024年美赛数学建模C题思路分析 - 网球的动量

# 1 赛题 问题C:网球的动量 在2023年温布尔登绅士队的决赛中,20岁的西班牙新星卡洛斯阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自2013年以来首次在温布尔登公开赛失利,并结束了他在大满贯赛事中历史上最伟大的球员之一的非凡…

2024年美赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

WordPress SMTP发信避坑指南

前言 Clip_2024-01-31_19-46-18803285 10.5 KB 目前不少主题已经内置了SMTP发信功能,这是因为WordPress自带的mail()函数发信时基本无法发送。 但是在之前(约2021年末)貌似可以通过WordPress自带的函数发信,并且收信方提示由xxx代…

༺༽༾ཊ—Unity之-04-原型模式—ཏ༿༼༻

首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务1:使用 建造者模式 创建三种 金刚猿猴 零部件 拼接组合 首先资源商店下载 金刚猿猴 模…

从0开始搭建、上传npm包

从0开始搭建、上传npm包 1、上传一个简单获取水果价格的包创建 vite 项目在项目根目录 src 文件夹中创建 index.ts 文件,文件内容如下:在 main.ts 文件中导入、导出上面创建的方法创建 vite.config.ts 配置文件,文件内容如下配置 package.jso…

npm 包管理工具

简介 Node官网:https://nodejs.org/ Npm官网:https://www.npmjs.com/ 在现代的软件开发世界中,包管理工具起着至关重要的作用。它们为开发者社区提供了一种高效共享和使用代码的方式。在 JavaScript 的范畴内,npm(Node…

EMQX 性能调优:TCP SYN 队列与 Accept 队列

在上一篇博客(EMQX 性能调优:最大连接与文件描述符),我们深入研究了 MQTT 连接与文件描述符之间的关系,介绍了如何修改文件描述符相关的内核参数来突破默认的最大连接数量限制。 但你可能会发现,在某些情况…

9.1斐波那契数(LC509-E)

算法: 动态规划五部曲: 1.确定dp数组及下标含义 dp[i]的定义为:第i个数的斐波那契数值是dp[i] 2.确定递归公式 题目已给出:状态转移方程 dp[i] dp[i - 1] dp[i - 2]; 3.dp数组如何初始化 题目已给 dp[0] 0; dp[1] 1; …