Python 读取 txt 文件详解 with ... open()

文章目录

  • [1 概述](#1 概述)
    • [1.1 注意事项](#1.1 注意事项)
    • [1.2 模式说明](#1.2 模式说明)
    • [1.3 文件准备](#1.3 文件准备)
  • [2 读文件](#2 读文件)
    • [2.1 读取整个文件](#2.1 读取整个文件)
    • [2.2 逐行读取](#2.2 逐行读取)
    • [2.3 读取所有行到列表](#2.3 读取所有行到列表)
  • [3 写文件](#3 写文件)
    • [3.1 覆盖写入](#3.1 覆盖写入)
    • [3.2 追加写入](#3.2 追加写入)
    • [3.3 写入多行](#3.3 写入多行)
  • [4 实用技巧](#4 实用技巧)
    • [4.1 检查文件是否存在](#4.1 检查文件是否存在)
    • [4.2 异常处理](#4.2 异常处理)

1 概述

1.1 注意事项

  • 文件编码 :建议指定编码(如:utf-8),避免在不同平台上出现编码问题。
  • with 语句:可以自动处理文件的打开和关闭,避免资源泄露。

1.2 模式说明

模式 描述
r 只读(默认)
w 写入(会覆盖已有文件)
x 独占创建(若文件已存在,则失败)
a 追加(若文件不存在,则创建)
b 二进制模式
t 文本模式(默认)
+ 更新(可读写)

例如:r+:可读写;wb:二进制写入

1.3 文件准备

  • 在桌面创建文件 file.txt,并复制以下内容
txt 复制代码
这是文件的第 1 行
这是文件的第 2 行
这是文件的第 3 行

2 读文件

2.1 读取整个文件

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

with open(file, 'r', encoding='utf-8') as f:
    content = f.read()  # 读取全部内容为一个字符串
    print(content)

2.2 逐行读取

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

with open(file, 'r', encoding='utf-8') as f:
    for line in f:  # 逐行迭代,内存高效
        print(line.strip())  # strip()去掉首尾空白和换行符

2.3 读取所有行到列表

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

with open(file, 'r', encoding='utf-8') as f:
    lines = f.readlines()  # 返回包含所有行的列表
    print(lines)

3 写文件

3.1 覆盖写入

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

with open(file, 'w', encoding='utf-8') as f:
    f.write('第一行内容\n')
    f.write('第二行内容\n')

3.2 追加写入

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

with open(file, 'a', encoding='utf-8') as f:
    f.write('追加的内容\n')

3.3 写入多行

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

lines = ['第一行\n', '第二行\n', '第三行\n']
with open(file, 'w', encoding='utf-8') as f:
    f.writelines(lines)  # 写入字符串列表

4 实用技巧

4.1 检查文件是否存在

python 复制代码
import os

file = r'C:\Users\Administrator\Desktop\file.txt'

if os.path.exists(file):
    print('存在')  # 文件存在时的操作
else:
    print('不存在')

4.2 异常处理

python 复制代码
file = r'C:\Users\Administrator\Desktop\file.txt'

try:
    with open(file, 'r', encoding='utf-8') as f:
        content = f.read()
        print(content)
except FileNotFoundError:
    print("文件不存在")
except UnicodeDecodeError:
    print("编码错误")
相关推荐
草明5 分钟前
clickhouse 检查是否有删除语句在执行
数据库·clickhouse
风语者日志17 分钟前
攻防世界—easyupload
数据库·web安全·ctf·小白入门
LXY_BUAA25 分钟前
在电脑中安装双系统(win11 + linux)20251019
linux·运维·服务器
彡皮28 分钟前
qt实用学习案例:数据库设计+图表显示+model-view模式+样式表定制
数据库·qt·学习
zzzyulin34 分钟前
huggingface transformers调试问题--加载本地路径模型时pdb断点消失
python·transformer
教练、我想打篮球37 分钟前
12 pyflink 的一个基础使用, 以及环境相关
python·flink·pyflink
飞翔的佩奇1 小时前
【完整源码+数据集+部署教程】【天线&运输】直升机战机类型识别目标检测系统源码&数据集全套:改进yolo11-CSP-EDLAN
前端·python·yolo·计算机视觉·数据集·yolo11·直升机战机类型识别目标检测系统
C嘎嘎嵌入式开发1 小时前
(21)100天python从入门到拿捏《XML 数据解析》
xml·开发语言·python
码出钞能力1 小时前
如何屏蔽GORM个别sql的日志
数据库·sql·gorm
蓝博AI1 小时前
基于卷积神经网络的香蕉成熟度识别系统,resnet50,vgg16,resnet34【pytorch框架,python代码】
人工智能·pytorch·python·神经网络·cnn