网站首页 > 知识剖析 正文
在 Python 编程的世界里,文件操作是一项极为基础且关键的技能。无论是读取配置信息、存储处理结果,还是进行数据分析,我们都离不开对各种文件格式的读写操作。今天,就来给大家分享 Python 文件操作中读写 txt、csv、json 这三种常见文件格式的终极方案,希望能帮到正在学习 Python 的小伙伴们!
一、读写 txt 文件
(一)读取 txt 文件
- 读取整个文件内容
在 Python 中,使用内置的open函数可以轻松打开一个文件。当我们想要一次性读取整个 txt 文件的内容时,可以这样做:
file_path = 'example.txt'
with open(file_path, 'r', encoding='utf - 8') as file:
content = file.read()
print(content)
这里使用了with语句,它就像是一个智能的管家,会在代码块结束时自动帮我们关闭文件,无需手动调用file.close(),从而避免了因忘记关闭文件而可能导致的资源泄漏问题。'r'表示以只读模式打开文件,encoding='utf - 8'则指定了文件的编码格式,这样可以正确处理包含中文等非 ASCII 字符的文本文件。
- 逐行读取文件内容
当文件比较大时,一次性读取整个文件可能会占用过多内存,此时逐行读取是个更好的选择:
file_path = 'example.txt'
with open(file_path, 'r', encoding='utf - 8') as file:
for line in file:
print(line.strip())
在这个代码中,file本身就是一个可迭代对象,我们可以直接使用for循环来逐行遍历它。line.strip()用于去除每行末尾的换行符及可能存在的空白字符,使输出结果更加整洁。
(二)写入 txt 文件
- 覆盖写入
如果要将内容写入一个新的 txt 文件,或者覆盖掉原有文件的内容,可以将打开文件的模式设置为'w':
file_path = 'output.txt'
with open(file_path, 'w', encoding='utf - 8') as file:
file.write('Hello, Python!\n')
file.write('This is a guide to file operations in Python.')
上述代码会创建一个名为output.txt的文件(如果文件已存在则会被覆盖),并将两行文本写入其中。注意,每次调用file.write()时,内容会直接追加到文件指针当前所在的位置。如果希望每次写入新内容时都换行,可以像示例中那样在字符串末尾加上'\n'。
- 追加写入
要是不想覆盖原有文件内容,而是在文件末尾追加新的内容,那么打开文件的模式应设为'a':
file_path = 'output.txt'
with open(file_path, 'a', encoding='utf - 8') as file:
file.write('\nThis is an appended line.')
这样,新的文本就会被追加到output.txt文件的末尾,原有内容得以保留。
二、读写 csv 文件
(一)读取 csv 文件
CSV(Comma - Separated Values)文件是一种常用的表格数据存储格式,以纯文本形式存储数据,数据之间通常用逗号分隔。在 Python 中,我们可以使用内置的csv模块来处理 csv 文件。
import csv
file_path = 'example.csv'
with open(file_path, 'r', encoding='utf - 8') as file:
reader = csv.reader(file)
for row in reader:
print(row)
这里通过csv.reader(file)创建了一个reader对象,它可以迭代读取example.csv文件的每一行数据,并将每行数据作为一个列表返回。如果 csv 文件的分隔符不是逗号,比如是分号;,可以通过指定delimiter参数来修改,即csv.reader(file, delimiter=';') 。
(二)写入 csv 文件
写入 csv 文件同样使用csv模块,并且可以通过csv.writer对象来实现。
import csv
file_path = 'output.csv'
data = [
('Name', 'Age'),
('Alice', 25),
('Bob', 30)
]
with open(file_path, 'w', encoding='utf - 8', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
在这段代码中,首先定义了一个包含表格数据的列表data,每个元素也是一个列表,表示表格的一行。然后通过csv.writer(file)创建了一个writer对象,使用writer.writerows(data)方法可以一次性将整个二维列表的数据写入到output.csv文件中。这里的newline=''参数很重要,它可以避免在写入 CSV 文件时出现多余的空行。如果只是想写入一行数据,可以使用writer.writerow(row)方法,其中row是一个表示单行数据的列表 。
三、读写 json 文件
(一)读取 json 文件
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在 Web 开发、数据存储等领域广泛应用。Python 内置的json模块提供了处理 json 文件的功能。
import json
file_path = 'example.json'
with open(file_path, 'r', encoding='utf - 8') as file:
data = json.load(file)
print(data)
上述代码通过json.load(file)方法从example.json文件中读取 JSON 数据,并将其解析为对应的 Python 对象(通常是字典或列表)。例如,如果example.json文件内容为{"name": "张三", "age": 20},那么读取后data就是一个字典{'name': '张三', 'age': 20} 。
(二)写入 json 文件
将 Python 对象转换为 JSON 格式并写入文件也很简单。
import json
file_path = 'output.json'
data = {'name': 'John', 'age': 28}
with open(file_path, 'w', encoding='utf - 8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)
这里json.dump(data, file, ensure_ascii=False, indent=4)将字典data转换为 JSON 格式并写入output.json文件。ensure_ascii=False参数确保中文字符能正确写入文件而不是被转义为 ASCII 码;indent=4则使生成的 JSON 文件内容更加美观,以 4 个空格的缩进展示层级结构。
以上就是 Python 中读写 txt、csv、json 文件的常用方法啦,希望这些内容能帮助大家在文件操作的过程中更加得心应手!大家在实际使用过程中有没有遇到过什么有趣的问题或者有更好的实践经验呢?欢迎在评论区留言分享哦!
猜你喜欢
- 2025-06-24 HTTP/3 黑科技:三次握手如何进阶 QUIC?30 年通信细节揭秘
- 2025-06-24 Markdown 语法速查手册与教程(markdown语法是什么意思)
- 2025-06-24 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- 2025-06-24 计算机网络之HTTP协议(http网络协议原理)
- 2025-06-24 零基础学习网站必知—http协议等资料大全
- 2025-06-24 Tomcat处理HTTP请求流程解析(tomcat如何解析http参数)
- 2025-06-24 一日一技:如何正确渲染大模型返回的Markdown?
- 2025-06-24 从零开始,30天学会在Shopify上开店之店铺设置–Day5
- 2025-06-24 壹起航:网站优化之网站代码优化(网站代码优化工具)
- 2025-06-24 软网推荐:请个多功能纯文本管理助手
- 最近发表
-
- HTTP/3 黑科技:三次握手如何进阶 QUIC?30 年通信细节揭秘
- Markdown 语法速查手册与教程(markdown语法是什么意思)
- 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- 计算机网络之HTTP协议(http网络协议原理)
- 零基础学习网站必知—http协议等资料大全
- Python文件操作:读写txt/csv/json的终极方案
- Tomcat处理HTTP请求流程解析(tomcat如何解析http参数)
- 一日一技:如何正确渲染大模型返回的Markdown?
- 从零开始,30天学会在Shopify上开店之店铺设置–Day5
- 壹起航:网站优化之网站代码优化(网站代码优化工具)
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)