08 Python学习之文件操作

简介: 计算机可以分为 文本文件 和 二进制文件

计算机可以分为 文本文件 和 二进制文件:

  • 文本文件 :可以使⽤⽂本编辑软件查看; 例如:python 的源程序 ,txt 文本文件等;
  • 二进制文件:保存的内容不是给⼈直接阅读的,⽽是提供给其他软件使⽤的 ; 例如:图⽚⽂件、⾳频⽂件、视频⽂件等等 ; ⼆进制⽂件不能使⽤⽂本编辑软件查看。

1、基本操作

在计算机中要操作文件的套路非常固定,一共包含三个步骤:

  1. 打开⽂件 ;
  2. 读、写⽂件 ;

    读: 将⽂件内容读⼊内存 ;

    写: 将内容写⼊⽂件 。

  3. 关闭⽂件 。

1.1 操作文件的函数/方法

在 Python 中要操作⽂件需要记住 1 个函数和 3 个方法。
序号 函数/方法 说明
1 open 打开文件,并且返回文件操作对象
2 read 将文件内容读取到内存
3 write 将指定内容写入文件
4 close 关闭文件
注:

1、open 函数的第⼀个参数是要打开的⽂件名(⽂件名区分⼤⼩写) ;

2、如果⽂件存在------返回⽂件操作对象 ;如果⽂件不存在------出错 ;

3、如果忘记关闭⽂件,会造成系统资源消耗,⽽且会影响到后续对⽂件的访问 。

1.2 文件操作案例-------读文件

# 打开文件
file = open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8")
# 读取文件
text = file.read()
# 显示读取内容
print(text)
# 关闭文件
file.close()
注意:

在 python 中 ,字符串前面加 r,表示字符串的内容不通过\转义 ;

encoding="utf8" 以 utf8 编码格式打开文件 。

1.3 文件操作案例-------写文件

# 打开文件
file = open(r"C:\Users\Administrator\Desktop\Test.txt", "w")
# 写入内容
str1 = "求个关注+点赞\n"
file.write(str1)
# 关闭文件
file.close()

1.4 open 打开⽂件的⽅式

open 函数默认以只读⽅式打开⽂件,并且返回⽂件对象

  • “r”:只读方式打开文件;
  • “w”:只写方式打开文件;
  • “a”:追加写方式打开文件;

open 函数的访问方式后面添加 b 参数代表访问二进制文件

rb: 代表用只读的方式打开一个二进制文件;

wb:代表用只写的方式打开一个二进制文件。

ab:代表用追加写的方式打开一个二进制文件

2、按行读取

read ⽅法默认会把⽂件的所有内容⼀次性读取到内存 ,但是如果⽂件太⼤,对内存的占⽤会⾮常严重。

解决方案就是: 按行读取文件内容。

2.1 readline ⽅法

readline 方法可以一次读取一行内容,⽅法执⾏后,会把⽂件指针移动到下⼀⾏,准备再次读取readline 方法读取到文件最后,返回长度为 0 的字符串 ”” 。
# 打开文件
file = open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8")
# 读取文件
text = file.readline()
# 显示读取内容
print(text)
# 关闭文件
file.close()

我们还可以结合 while 循环 readline 读取文件全部内容

# 打开文件
file = open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8")
while True:
    # 读取文件
    text = file.readline()
    if text =="":
        break
    # 显示读取内容
    print(text,end="")
# 关闭文件
file.close()

2.2 readlines ⽅法

readlines 方法可以一次读取文件所有行,返回类型为列表。
# 打开文件
file = open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8")
text = file.readlines()
for i in text:
    print(i,end="")
# 关闭文件
file.close()

2.3 with open 语法

with open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8") as file:
    print(file.read())

3、JSON 操作

JSON 的全称是”JavaScript Object Notation”,是 JavaScript 对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

3.1 特点

  • JSON 是纯文本;
  • JSON 具有良好的自我描述性,便于阅读和编写;
  • JSON 具有清晰的层级结构;
  • 有效地提升网络传输效率;

3.2 语法规则

  • 大括号保存对象;
  • 中括号保存数组;
  • 对象数组可以相互嵌套;
  • 数据采用键值对表示;
  • 多个数据由逗号分隔;

3.3 值

  • 数字(整数或浮点数);
  • 字符串(在双引号中);
  • 逻辑值(true 或 false);
  • 数组(在中括号中);
  • 对象(在大括号中);
  • null

示例:

{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "rtFGtGA3QKqy3nnm4f33SA",
  "version" : {
    "number" : "7.3.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "de777fa",
    "build_date" : "2019-07-24T18:30:11.767338Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

3.4 数据操作

读取json文件:

import json
# 打开文件
f = open(r"C:\Users\Administrator\Desktop\Test.json", "r", encoding="utf8")
data = json.load(f)
# 返回的 data 数据类型为字典或列表
print(data)
f.close()

写入json文件:

import json

# 准备数据
data = {'name': '一切总会归于平淡', 'age': 18, 'url': 'https://juejin.cn/user/567767899324286'}
# 打开文件
f = open(r"C:\Users\Administrator\Desktop\Test.json", "w", encoding='UTF-8')
json.dump(data, f, ensure_ascii=False)
f.close()

注:

ensure_ascii=False 代表中文不转义
相关文章
|
24天前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
223 1
|
24天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
89 2
|
24天前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
135 1
|
24天前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
85 3
|
24天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(一):认识Python、Py解释器作用;编写第一个Python程序;Python中的基本数据结构
认识Python 前提安装好Python,这里使用3.13版本 如今Python作为变成姐最炙手可热的编程语言,它的使用途径涵盖绝大部分生活中需要的开发需要。 许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA都大量地使用Python。
306 1
|
2月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
6月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
4月前
|
安全 Python
Python语言中常用的文件操作方法探讨
通过上述方法的结合使用,我们可以构筑出强大并且可靠的文件操作逻辑,切实解决日常编程中遇到的文件处理问题。
193 72
|
4月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
219 57
|
4月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。

推荐镜像

更多