目录
计算机可以分为 文本文件 和 二进制文件:
在计算机中要操作文件的套路非常固定,一共包含三个步骤:
在 Python 中要操作⽂件需要记住 1 个函数和 3 个方法。
序号 | 函数/方法 | 说明 |
---|---|---|
1 | open | 打开文件,并且返回文件操作对象 |
2 | read | 将文件内容读取到内存 |
3 | write | 将指定内容写入文件 |
4 | close | 关闭文件 |
注: 1、open 函数的第⼀个参数是要打开的⽂件名(⽂件名区分⼤⼩写) ; 2、如果⽂件存在------返回⽂件操作对象 ;如果⽂件不存在------出错 ; 3、如果忘记关闭⽂件,会造成系统资源消耗,⽽且会影响到后续对⽂件的访问 。
# 打开文件
file = open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8")
# 读取文件
text = file.read()
# 显示读取内容
print(text)
# 关闭文件
file.close()
注意: 在 python 中 ,字符串前面加 r,表示字符串的内容不通过\转义 ; encoding="utf8" 以 utf8 编码格式打开文件 。
# 打开文件
file = open(r"C:\Users\Administrator\Desktop\Test.txt", "w")
# 写入内容
str1 = "求个关注+点赞\n"
file.write(str1)
# 关闭文件
file.close()
open 函数默认以只读⽅式打开⽂件,并且返回⽂件对象
open 函数的访问方式后面添加 b 参数代表访问二进制文件
rb: 代表用只读的方式打开一个二进制文件; wb:代表用只写的方式打开一个二进制文件。 ab:代表用追加写的方式打开一个二进制文件
read ⽅法默认会把⽂件的所有内容⼀次性读取到内存 ,但是如果⽂件太⼤,对内存的占⽤会⾮常严重。
解决方案就是: 按行读取文件内容。
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()
readlines 方法可以一次读取文件所有行,返回类型为列表。
# 打开文件
file = open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8")
text = file.readlines()
for i in text:
print(i,end="")
# 关闭文件
file.close()
with open(r"C:\Users\Administrator\Desktop\工单查询.txt", "r", encoding="utf8") as file:
print(file.read())
JSON 的全称是”JavaScript Object Notation”,是 JavaScript 对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。
示例:
{
"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"
}
读取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://blog.csdn.net/weixin_53041251?spm=1000.2115.3001.5343'}
# 打开文件
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 代表中文不转义