Python文件读写与JSON数据存储详解
本文详细介绍Python中文件读取与写入的核心方法。通过open函数指定路径获取文件对象,演示了读取文本内容及使用追加模式写入数据而不覆盖原内容。此外,还讲解了利用json模块进行结构化数据存储与读取的操作,并提供了循环保存与读取多个文件的完整代码示例,帮助开发者掌握基础文件IO技能。
前言
文本文件是存储大量用户重要数据的常见载体。为了帮助用户更好地管理这些数据,本文将深入讲解如何利用Python实现文本内容的读取、输入,以及数据的存储与读取操作。
一、读取文件中的数据:
首先,需要确定目标文件的具体路径。例如,在桌面创建一个名为number.txt的文本文件,其完整路径为
C:\\Users\\yu\\Desktop\\number.txt
接下来,利用Python内置的open()函数打开文件。该函数需要接收文件路径作为参数,Python会根据此路径在指定位置查找并打开文件。
filename = 'C:\\Users\\yu\\Desktop\\number.txt'
with open(filename) as f:
contents = f.read()
print(contents)上述程序展示了open()函数的使用,它返回一个表示文件的对象f。通过调用f.read()方法,可以将number.txt文件中的全部数据读出并赋值给变量contents,最后打印显示文本内容。运行结果如下图所示:

其中number.txt文件中预先存储的数据内容如下:

由此可见,上述程序成功实现了从指定路径的文件中读取数据的功能。
二、将数据写入文件中:
若要在现有文本文件中写入新数据,需在调用open()函数时指定写入模式。除了写入模式外,还有其他常用模式可供选择,主要包括以下几种:
- 'w':写入模式(覆盖原有内容)
- 'a':附加模式(在文件末尾追加)
- 'r':读取模式
- 'r+':读写模式
由于本例需要在同一个文件中写入数据且不希望覆盖原有内容,因此选择附加模式('a')打开文件并写入数据。附加模式确保在写入新数据时,保留文件原有的所有内容。
filename = 'C:\\Users\\yu\\Desktop\\number.txt'
with open(filename, 'a') as f:
f.write("\n爬虫小迷弟写入数据")运行程序后查看原有的文本文件,结果如下:

数据的存储与读取操作与文件写入读取类似,这里介绍一种更简洁的实现方式,即使用Python提供的json模块来实现数据的结构化存储与读出。
数据的存储:
import json
filename = 'C:\\Users\\yu\\Desktop\\data.txt'
number = [1, 2, 3, 4, 5, 6, 6]
with open(filename, 'r+') as f:
json.dump(number, f)将变量number中的数据写入文件data.txt中,具体结果如下:

数据的读出:
import json
filename = 'C:\\Users\\yu\\Desktop\\data.txt'
number = []
with open(filename, 'r+') as f:
number = json.load(f)
print(number)文件中的数据被读取并赋值给变量number,从而完成数据的恢复。
附:python循环保存文件并循环读取文件
python循环保存文件并循环读取文件
此处以列表为例,将列表中的每个元素视为独立文件,数据来源于Python自带的新闻文本主题分类数据集。

保存代码:
#%%
for i in range(len(X_test)):
with open("%d.txt"%(i),'w',encoding='utf-8') as f:
for j in X_test[i]:
f.write(j,)
保存效果:

读取文件
代码:
import os
path = "./testdata" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
x_test = []
for file in files: #遍历文件夹
position = path+'\\'+ file #构造绝对路径,"\\",其中一个'\'为转义符
with open(position, "r",encoding='utf-8') as f: #打开文件
data = f.read() #读取文件
x_test.append(data)效果:

总结
到此这篇关于利用Python实现文件读取与输入以及数据存储与读取的常用命令的文章就介绍到这了,更多相关Python实现文件读取与输入内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









