首页 > 编程语言 >Python文件操作

Python文件操作

时间:2023-07-21 11:23:39浏览次数:29  
标签:count 文件 Python content 操作 close open itheima

Python文件操作

一、文件的编码

1.1 背景

thinking:计算机只能识别:0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢?

answer:使用编码技术(密码本)将内容翻译成0和1存入。

编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。

计算机中有许多可用编码:

  • UTF-8
  • GBK
  • Big5
  • ...

不同的编码,将内容翻译成二进制也是不同的。

UTF-8是目前全球通用的编码格式。除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可。

1.2 总结

image-20230708094437226

二、文件的读取

2.1 什么是文件

内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索,引入了“文件”的概念。
一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件,并赋予一个文件名。操作系统以文件为单位管理磁盘中的数据。一般来说,文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别。

2.2 文件操作的内容

在日常生活中,文件操作主要包括打开、关闭、读、写等操作。

2.3 文件的操作步骤

大概可以分为三个步骤(简称文件操作三步走):

①打开文件

②读写文件

③关闭文件

注意:可以只打开和关闭文件,不进行任何读写。

2.3.1 open()打开函数

在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下

open(name, mode, encoding)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
encoding:编码格式(推荐使用UTF-8)

实例代码:

f = open('python.txt', 'r', encoding='UTF-8')
# encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定

注意:此时的'f'是'open'函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问,w相当于是覆盖写入

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

image-20230709101340158

2.3.2 读操作相关方法

read()方法:

文件对象.read(num)

num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。

readlines()方法:

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

f = open('python.txt')
content = f.readlines()

# ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n', 'ccc']
print(content)

# 关闭文件
f.close()

readline()方法,一次读取一行内容

f = open('python.txt')

content = f.readline()
print(f'第一行{content}')

content = f.readline()
print(f'第二行{content}')

# 关闭文件
f.close()

for循环读取文件行

for line in open('python.txt', "r"):
	print(line)

# 每一个line临时变量,就记录了文件的一行数据

close():关闭文件对象

f = open('python.txt', "r")
f.close()
# 最后通过close,关闭文件对象,也就是关闭对文件的占用
# 如果不调用close,同时程序没有停止运行,那么这个文件将一直被python程序占用。

with open语法

with open('python.txt', 'r') as f:
    f.readlines()
# 通过在with open的语句块中对文件进行操作
# 可以在操作完成后自动关闭close文件,避免遗忘掉close方法
2.3.3 操作汇总

image-20230709102250430

2.3.4 总结

image-20230709102334967

2.3.5 课后练习:单词计数

image-20230709102422387

# 通过文件读取操作,读取文件word.txt,统计itheima单词出现的次数
# 打开文件,以读取模式打开
# 我的思路
# with open("word.txt") as f:
#     contents = f.readlines()
#     count = 0
#     print(contents)
#     for content in contents:
#         content.split(" ")
#         if content.count("itheima"):
#             count += 1
#     print(f"itheima出现了{count}次")
# 参考其他方法
f = open("word.txt", "r", encoding="UTF-8")
# 方式2:读取全部内容,通过字符串count统计itheima单词数量
# content = f.read()
# count = content.count("itheima")
# print(f"itheima在文件中出现了:{count}次")
# 方式三:读取内容,一行一行读取
count = 0  # 使用count变量来累计itheima出现的次数
for line in f:
    line = line.strip()  # 去除开头和结尾的空格以及换行符
    words = line.split(" ")
    for word in words:
        if word == "itheima":
            count += 1  # 如果单词是itheima,进行数量的累加加1
# 判断单词出现次数并累计
print(f"itheima出现的次数是:{count}")
# 关闭文件
f.close()

三、文件的写入

3.1 案例演示:

# f.write("Hello world1111!")  # 内容写到内存中
# flush刷新
# f.flush()  # 将内存中积攒的内容,写入到硬盘
# close关闭
# f.close()  # close方法,内置了flush的功能的
f = open("test.txt", "w", encoding="UTF-8")
# write写入、flush刷新
f.write("小鲍学python")
# close关闭
f.close()

注意:

  1. 直接调用write,内容并为真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  2. 当调用flush的时候,内容才会真正写入文件
  3. 这样做是避免频繁地操作硬盘,导致效率下降(攒一堆,一次性写入磁盘)

写操作注意

  • 文件如果不存在,使用”w”模式,会创建新文件
  • 文件如果存在,使用”w”模式,会将原有内容清空

3.2 总结

image-20230721110353143

四、文件的追加

五、文件操作综合案例

标签:count,文件,Python,content,操作,close,open,itheima
From: https://www.cnblogs.com/codingbao/p/17570777.html

相关文章

  • python+mysql
    目录MySQL安装&初始化&连接mysql安装mysql初始化mysql启动测试连接mysql密码设置数据库管理内置客户端操作python代码操作MySQL安装&初始化&连接mysql安装mysql主要为5和8两个版本,下载地址下载形式为压缩包的格式,解压即用mysql初始化需要预先指定一个配置文件,后缀......
  • JavaIO中的缓冲流有什么作用如何使用缓冲流进行IO操作
     缓冲流在JavaIO中扮演着非常重要的角色,它可以提高IO操作的效率,减少访问硬盘的次数。在本文中,我们将探讨JavaIO中的缓冲流的作用,并演示如何使用缓冲流进行IO操作。首先,让我们了解一下什么是缓冲流。缓冲流是一种高级流,它通过在内存中创建缓冲区来提高IO的效率。当我们使用缓冲......
  • mysql多表关联的新增和修改操作
    1.多表的新增操作需求:从一个表查出的字段插入到另一个表示例:将loit_bear表的type_code和type_name的字段值全部分别新增到loit_dict表的dict_code和dict_name字段INSERTINTOloit_dict(dict_code,dict_name)selecttype_code,type_namefromloit_bear2.多表的修改操作......
  • vscode python代码提示
    VSCodePython代码提示简介VSCode(VisualStudioCode)是一款轻量级的代码编辑器,具有丰富的扩展功能。通过安装Python扩展,可以在VSCode中进行Python开发,并享受强大的代码提示功能。本文将介绍如何在VSCode中使用Python代码提示。安装Python插件在开始使用Python代码提示之前,......
  • LntonCEC算法算力云平台服务通过EasyNTS内网穿透到公网上的具体操作流程
    算法算力云平台的主要特点包括高性能、高可靠性、高可扩展性和低成本。LntonCEC算法算力云平台是一种为用户提供高效、强大的算法计算服务的云计算平台。它可以帮助用户快速、灵活地运行各种复杂的计算模型和算法,包括机器学习、人工智能、大数据分析、图像识别等领域。算法算力云平......
  • C++ 操作文本文件
    C++操作文本文件C++把IO封装成类33​操作文本文件需要包含头文件#include<fstream>​写文件(输出流)步骤(四步)创建输出流对象​ofstreamfp;//创建输出流对象​打开文件,⚠打开模式缺省时如果文件不存在就创建,文件存在则截断内容​fp.open("文件路径",打开模式);......
  • python可视化库seaborn
    1,它也是一个可视化库,对matplotlib进行了二次封装。比起pyplot它的接口更加集成,对numpy\pandas支持良好。可以设置图片风格style。seaborn与matplotlib的关系是互为补充而非替代:多数场合中seaborn是绘图首选,而在某些特定场景下则仍需用matplotlib进行更为细致的个性化定制。2,sns的风......
  • Python爬虫超详细讲解(零基础入门,老年人都看的懂)
    本文已收录至Github,推荐阅读......
  • 电子书下载 免费pdf Python编程从入门到实践 第2版
    电子书下载-Python编程从入门到实践第2版简介Python是一种简单易学的编程语言,广泛应用于数据分析、人工智能、Web开发等领域。《Python编程从入门到实践》是一本非常受欢迎的Python入门教程。本文将介绍如何下载免费的PDF版本的第2版《Python编程从入门到实践》电子书,并提供一......
  • 如何在EasyCVR平台播放MP4视频文件?两种方法!
    目前EasyCVR平台可支持国标GB28181、RTSP/Onvif、RTMP、海康Ehome、SDK等方式接入,这些接入方式主要是针对设备或视频流的接入。在有些项目现场也会遇到播放MP4视频文件的需求,今天我们来介绍下,如何在EasyCVR平台实现MP4视频文件的播放?这里介绍以下2种方式:1、使用OBS工具推流到Ea......