当前位置: 首页 > news >正文

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

文章目录

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

1 概述

1.1 注意事项

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

1.2 模式说明

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

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

1.3 文件准备

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

2 读文件

2.1 读取整个文件

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

2.2 逐行读取

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 读取所有行到列表

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 覆盖写入

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 追加写入

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

3.3 写入多行

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 检查文件是否存在

import osfile = r'C:\Users\Administrator\Desktop\file.txt'if os.path.exists(file):print('存在')  # 文件存在时的操作
else:print('不存在')

4.2 异常处理

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("编码错误")

相关文章:

  • Python torchvision.datasets 下常用数据集配置和使用方法
  • 如何根据需求选择合适的氢气监测分析仪?
  • C++ Lambda 表达式
  • 24FIC 决赛 计算机部分
  • SAP SuccessFactors Recruiting and Onboarding The Comprehensive Guide
  • [250423] Caddy 2.10 正式发布:引入 ECH、后量子加密等重要更新
  • 基于javaweb的SpringBoot校园服务平台系统设计与实现(源码+文档+部署讲解)
  • 差分探头关键性能参数解析
  • 【Python语言基础】24、并发编程
  • 单片机 + 图像处理芯片 + TFT彩屏 触摸滑动条控件
  • github 简单访问方法(无魔法)
  • YOLOv8 涨点新方案:SlideLoss FocalLoss 优化,小目标检测效果炸裂!
  • LeetCode算法题(Go语言实现)_60
  • 【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)
  • 第1讲:Transformers 的崛起:从RNN到Self-Attention
  • 【AI提示词】艺人顾问
  • 实验三 进程间通信实验
  • Flink介绍——实时计算核心论文之Flink论文
  • 入门-C编程基础部分:19、输入 输出
  • nuxt3持久化存储全局变量
  • 可移动可变形的新型超材料问世
  • 新华视点丨广西抗旱一线调查
  • 【社论】上海经济开门红:不偏科、挑大梁
  • 东部战区新闻发言人就美“劳伦斯”号导弹驱逐舰过航台湾海峡发表谈话
  • 嫦娥五号《月球样品借用协议》签约,2025中国航天公益形象大使公布
  • “80后”阿伯丁大学法学硕士朱江已任四川泸州市副市长