在Python中,open()函数用于打开文件,并返回一个文件对象,可以用于读取或写入文件,而json模块提供了与JSON数据格式的编码和解码相关的功能。它可以将Python对象转换为JSON字符串(编码),以及将JSON字符串转换为Python对象(解码)。
1.open()
其实open只是打开文件等内容
打开的模式有六种都要去关闭哈
1.1 六种打开Python中的模式
1.1.1 只读模式
‘r’(只读模式):表示以只读方式打开文件。文件必须存在,否则会引发FileNotFoundError异常。文件指针位于文件开头,可以读取文件内容。这是默认模式。
# 只读模式
file = open("file.txt", "r")
content = file.read()
file.close()
1.1.2 写入模式
‘w’(写入模式):表示以写入方式打开文件。如果文件已经存在,则会清空文件内容;如果文件不存在,则会创建一个新文件。文件指针位于文件开头,可以写入新的内容。如果你想要追加内容到文件末尾,可以使用追加模式。
# 写入模式
file = open("file.txt", "w")
file.write("Hello, World!")
file.close()
1.1.3 追加模式
a’(追加模式):表示以追加方式打开文件。如果文件已经存在,则文件指针位于文件末尾,可以在文件末尾追加内容;如果文件不存在,则会创建一个新文件。适用于需要在现有文件中添加内容的情况。
# 追加模式
file = open("file.txt", "a")
file.write("\nThis is a new line.")
file.close()
1.1.4 独立创建模式
‘x’(独占创建模式):表示以独占创建方式打开文件。如果文件已经存在,则会引发FileExistsError异常;如果文件不存在,则会创建一个新文件。这种模式适用于需要确保文件不存在的情况。
# 独占创建模式
try:
file = open("file.txt", "x")
except FileExistsError:
print("File already exists.")
1.1.5 二进制模式
‘b’(二进制模式):表示以二进制方式打开文件。用于处理二进制文件,例如图片、视频等。在这种模式下,文件内容以字节流的形式读取或写入。
一般打开图片之类的rb形式
# 二进制模式
file = open("image.jpg", "rb")
data = file.read()
file.close()
1.1.6 文本模式
‘t’(文本模式):表示以文本方式打开文件,默认为文本模式。用于处理文本文件,例如文本文档、日志文件等。在这种模式下,文件内容以字符串的形式读取或写入。
# 文本模式
file = open("file.txt", "rt")
content = file.read()
file.close()
1.2 open的简单用法
1.2.1读取打开文件
readable 是否能读
readblin 读取一行
readblins 读取多行 将其转化为列表
其余w等和这差不多,但是用的真不多,这就略过了
f = open("data.txt", mode="r")
print(f.readable())
content = f.read()
print(type(content))
line = f.readline()
print(line)
content = f.readlines()
print(type(content), content)
f.close()
#输出结果
True
<class 'str'>
<class 'list'> []
1.2 open与with的使用
open()函数与with语句可以搭配使用,这种方式更加安全和便捷。使用with语句可以自动管理文件的打开和关闭,确保在操作结束后正确关闭文件
下面是with语句示例
# 读取文件
with open("file.txt", "r") as file:
content = file.read()
# 对文件内容进行处理
# 写入文件
with open("file.txt", "w") as file:
file.write("Hello, World!")
# 执行其他操作
# 追加文件
with open("file.txt", "a") as file:
file.write("\nThis is a new line.")
# 执行其他操作
通过with open()将文件打开,并将其赋值给一个变量(例如file)。在with代码块内部,可以对文件进行读取、写入或其他操作。一旦代码块结束,无论是正常结束还是发生异常,with语句会自动关闭文件,不需要显式调用close()方法。
使用with语句可以确保在操作文件时避免忘记关闭文件,同时也可以提高代码的可读性和可维护性。因此,建议在处理文件时优先考虑使用with语句。
2. Json模块
JSON格式使用键值对的形式表示数据,其中键是字符串,值可以是数字、字符串、布尔型、数组、对象或者null。具体格式如下:
json模块提供了四个主要的函数来处理JSON数据:
2.1json.dumps()
将Python对象转换为JSON字符串。
import json
# Python字典
data = {"name": "John", "age": 30, "city": "New York"}
# 转换为JSON字符串
json_data = json.dumps(data)
print(json_data)
# 输出: {"name": "John", "age": 30, "city": "New York"}
2.2json.loads()
将JSON字符串转换为Python对象
import json
# JSON字符串
json_data = '{"name": "John", "age": 30, "city": "New York"}'
# 转换为Python对象
data = json.loads(json_data)
print(data["name"])
# 输出: John
2.3 json.dump()
将Python对象以JSON格式写入文件。
import json
# Python字典
data = {"name": "John", "age": 30, "city": "New York"}
# 写入JSON文件
with open("data.json", "w") as f:
json.dump(data, f)
2.4 json.load()
从文件中读取JSON数据,并将其转换为Python对象。
import json
# 从JSON文件中读取数据
with open("data.json", "r") as f:
data = json.load(f)
print(data["age"])
# 输出: 30
通过json模块,我们可以在Python中轻松地将数据转换为JSON格式,并在需要时将其还原为Python对象。这使得在Python和其他编程语言之间进行数据交换变得简单和方便。
3. 总结
通过Python中的Json和open ,我们可以打开文件并且想里面保存数据
封装两个函数
# 加载模块 判断文件是否有没有,没有则创建
def load_data():
path = "data.json"
if os.path.exists(path):
with open(path, "r", encoding="utf8") as f:
global datas
datas = json.load(f)
# 写入模块 将datas 数据类型写入里面
def save_data():
path = "data.json"
with open(path, "w", encoding="utf8") as f:
json.dump(datas, f)