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

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()

输出

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

强化学习 - Monte Carlo Tree Search (MCTS)

什么是机器学习 强化学习中的Monte Carlo Tree Search (MCTS) 是一种用于决策制定和搜索的算法,特别在不确定环境下表现出色。 1. 强化学习背景 在强化学习中,一个智能体通过与环境的交互学习,以便在某个任务上获得最大的奖励。MCTS是一种…

01- k8s基础网络知识 之 underlay与overlay网络

前言: 我们在学习k8s网络之前,必须要了解k8s网络相关的一些基础知识,比如什么是underlay网络、overlay网络等,只有把基础知识掌握之后,后续学习k8s网络的时候,一些知识点就不会再云里雾里了。 1 underlay与…

关于字符串处理

文章目录 关于字符串处理1、取字符串的长度2、跳过前面的字符3、取字符串右边的字符4、掐头去尾5、取倒数的范围6、删左留右7、删右留左8、查找替换9、大小写转换 关于字符串处理 1、取字符串的长度 [rootlocalhost ~]#strabcd1128 #定义变量 [rootlocalhost ~]#echo ${#str}…

React实现组件扩展机制

在java中,SPI机制是Java中提供的一种服务发现机制。同样,前端也很需要这种机制,这样可以做到组件可插拔,可替换,减少相互冗余。 快速使用 1.扩展点使用 通过使用Extension组件定义扩展点,通过name标记扩展…

血细胞分类项目

血细胞分类项目 数据集:血细胞分类数据集数据处理 dataset.py网络 net.py训练 train.py拿训练集的几张图进行预测 数据集:血细胞分类数据集 https://aistudio.baidu.com/datasetdetail/10278 数据处理 dataset.py from torchvision import transfor…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)

专属领域论文订阅 关注{晓理紫|小李子},每日更新论文,如感兴趣,请转发给有需要的同学,谢谢支持 如果你感觉对你有所帮助,请关注我,每日准时为你推送最新论文。 为了答谢各位网友的支持,从今日起…

Task05:PPO算法

本篇博客是本人参加Datawhale组队学习第五次任务的笔记 【教程地址】https://github.com/datawhalechina/joyrl-book 【强化学习库JoyRL】https://github.com/datawhalechina/joyrl/tree/main 【JoyRL开发周报】 https://datawhale.feishu.cn/docx/OM8fdsNl0o5omoxB5nXcyzsInGe…

【QT+QGIS跨平台编译】之二十二:【FontConfig+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、FontConfig介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、FontConfig介绍 FontConfig 是一个用于配置和定制字体的库,广泛应用于基于X Window系统的操作系统中,尤其是在Linux和Unix-like系统中。它为应用程序提供了一种统一的…

C语言·贪吃蛇游戏(上)

1. 游戏任务 使用C语言在Windows环境的控制台中模拟实现小游戏贪吃蛇 游戏中要包含以下功能: 1. 贪吃蛇地图绘制 2. 贪吃蛇上下左右移动和吃食物 3. 蛇撞墙,或撞到自身死亡 4. 计算得分 5. 蛇身加速、减速 6. 暂停游戏 2. Win32 API 介绍 Windows是一种多…

【Jenkins】配置及使用|参数化|邮件|源码|报表|乱码

目录 一、Jenkins 二、Jenkins环境搭建 1、下载所需的软件包 2、部署步骤 3、其他 三、Jenkins全局设置 (一)Manage Jenkins——Tools系统管理->全局工具配置分别配置JDK、Maven、Allure、Git,可以配置路径或者直接选择版本安装 1…

网络流的认识

网络流的认识 什么是流网络 网络(network)是指一个特殊的有向图 G ( V , E ) G (V,E) G(V,E),其与一般有向图的不同之处在于有容量和源汇点,不考虑反向边。 其中,我们有以下变量来方便表示: S S S&…

2024美赛C题保姆级分析完整思路代码数据教学

2024美国大学生数学建模竞赛C题保姆级分析完整思路代码数据教学 C题 Momentum in Tennis 网球中的动量 在2023年温布尔登男单决赛中,20岁的西班牙新星卡洛斯阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自2013年以来在温布尔登的首次失利,也…

SwiftUI 动画入门之二:几何特效动画(GeometryEffect)

概览 在上一篇博文 SwiftUI 动画入门之一:路径动画(Path Animations)中,我们讨论了如何打造折线图(LinesGrap)形状上的路径动画。 而在本篇博文中,我们在前篇实现基础之上通过 GeometryEffect 特效为任意路径动画加上了活泼可爱的“小尾巴”。这是怎么做到的呢? 在本…

格式化内存卡后,如何找回丢失的监控视频?

随着摄像头的应用越来越广泛,很多监控摄像头采用了内存卡作为存储介质,方便用户存储和查看摄像头拍摄的视频文件。然而,由于各种原因,监控摄像头的内存卡有时会被意外格式化导致重要数据的丢失,给用户带来诸多困扰。 那…

有色金属矿山采选智能工厂数字孪生可视化,推进矿采选业数字化转型

有色金属矿山采选智能工厂数字孪生可视化,推进矿采选业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的必然趋势。有色金属矿采选业作为传统工业的重要组成部分,也面临着数字化转型的挑战。为了更好地推进有色金属矿采选业…

C语言字符、字符串

一、c语言字符串的本质 1、char类型数组 c语言没有专门用来存储字符串的变量类型,字符串都是存储在char类型的数组中,char类型的连续空间中每个存储单元存储一个字符,数组末尾以’\0’结束,标志字符串的结束。\0’是空字符&…

开源编辑器:ONLYOFFICE文档又更新了!

办公软件 ONLYOFFICE文档最新版本 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文本文档、电子表格、演示文稿、可填写的表单、PDF&#…

大语言模型之LlaMA系列- LlaMA 2及LLaMA2_chat(上)

LlaMA 2是一个经过预训练与微调的基于自回归的transformer的LLMs,参数从7B至70B。同期推出的Llama 2-Chat是Llama 2专门为对话领域微调的模型。 在许多开放的基准测试中Llama 2-Chat优于其他开源的聊天模型,此外Llama 2-Chat还做了可用性与安全性评估。 …

IP定位如何进行业务风控反欺诈

IP地址作为接入互联网的唯一标识,分析其归属地及网络类型等多维度信息,帮助识别虚假流量和欺诈账号,保障账号和交易安全,帮助企业持续优化风控与反欺诈模型,降低经济损失。 交易聚集分析 通过IP地址数据服务得到的交易…

Pytorch从零开始实战18

Pytorch从零开始实战——人脸图像生成 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——人脸图像生成环境准备模型定义开始训练可视化总结 环境准备 本文基于Jupyter notebook,使用Python3.8,Pytorch2.0.1cu118&#…