苦练Python第45天:使用open函数读取文件内容

前言

大家好,我是倔强青铜三 。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到**苦练Python第 45 天!**今天掌握开发者必备神技------用 open() 安全、高效地读取任何文件。


📥 1. open() 基础语法

python 复制代码
file = open("文件名.txt", "模式")

常用模式

  • "r" 只读(默认)
  • "w" 写入(覆盖)
  • "a" 追加
  • "b" 二进制(图片等)
  • "t" 文本(默认)

别忘了 关闭 文件:

python 复制代码
file = open("sample.txt", "r")
content = file.read()
file.close()

📄 2. 一口气读完

python 复制代码
with open("sample.txt", "r") as f:
    data = f.read()
    print(data)

with 语句自动关闭文件,出异常也不怕。


📜 3. 逐行读取

readline() 一次一行

python 复制代码
with open("sample.txt", "r") as f:
    line = f.readline()
    while line:
        print(line.strip())
        line = f.readline()

readlines() 一次全部行 → 列表

python 复制代码
with open("sample.txt", "r") as f:
    lines = f.readlines()
    print(lines)

📏 4. 读取指定字符数

python 复制代码
with open("sample.txt", "r") as f:
    first_10_chars = f.read(10)
    print(first_10_chars)

🔄 5. 文件对象可迭代

大文件省内存写法:

python 复制代码
with open("sample.txt", "r") as f:
    for line in f:
        print(line.strip())

🧨 6. 异常安全处理

python 复制代码
try:
    with open("non_existent.txt", "r") as f:
        data = f.read()
except FileNotFoundError:
    print("文件不存在!")
except IOError:
    print("读取错误!")

🛠️ 实战:统计文件词数

python 复制代码
with open("sample.txt", "r") as f:
    text = f.read()
    words = text.split()
    print("总词数:", len(words))

📌 小结

  • open(filename, "r") 读取
  • with open() 自动关闭
  • read() / readline() / readlines() 灵活切换
  • try-except 捕获异常
  • 迭代文件对象,大文件也流畅

🧪 练习任务

1. 读取文件并统计:总行数、总词数、总字符数

python 复制代码
# 使用 open() 统计 sample.txt 的行数、词数、字符数
with open("sample.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()          # 读取所有行到列表

total_lines = len(lines)           # 行数
# 合并所有行再拆分单词,防止行尾空格影响
total_words = len("".join(lines).split())
total_chars = sum(len(line) for line in lines)  # 每行字符数累加

print(f"总行数: {total_lines}")
print(f"总词数: {total_words}")
print(f"总字符数: {total_chars}")

2. 只打印包含 "ERROR" 的日志行

python 复制代码
# 使用 open() 逐行读取 log.txt,仅输出包含 ERROR 的行
with open("log.txt", "r", encoding="utf-8") as f:
    for line in f:                 # 逐行迭代,节省内存
        if "ERROR" in line:
            print(line.rstrip())   # rstrip() 去掉右侧换行与空格

3. 读取文件并倒序输出所有行

python 复制代码
# 使用 open() 将 sample.txt 的所有行倒序打印
with open("sample.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()   # 读取全部行

lines.reverse()             # 就地反转列表
for line in lines:
    # 行末自带换行符,end='' 防止 print 再加一次
    print(line, end='')

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎 点赞收藏关注,一键三连!

相关推荐
2401_8414956414 小时前
【计算机视觉】基于数学形态学的保留边缘图像去噪
人工智能·python·算法·计算机视觉·图像去噪·数学形态学·边缘保留
三天哥14 小时前
Sora 2为什么会火?
人工智能·gpt·ai·aigc·agi·ai视频·sora
逻辑留白陈14 小时前
2025年实用大模型工具清单
人工智能·学习方法
许泽宇的技术分享14 小时前
AI驱动的视频生成革命:MoneyPrinterTurbo技术架构深度解析
人工智能·内容创作·ai视频生成
飞哥数智坊15 小时前
“成章”写作助手开源:中秋赏不成月,那就开源一个 AI 实战项目吧
人工智能·ai编程·trae
colus_SEU15 小时前
【循环神经网络6】LSTM实战——基于LSTM的IMDb电影评论情感分析
人工智能·rnn·深度学习·神经网络·lstm
丰海洋15 小时前
神经网络实验3-线性回归
python·神经网络·线性回归
BruceD_15 小时前
新装 CentOS 7 切换 yum 源完整指南
linux·python·docker·centos·yum
带娃的IT创业者15 小时前
第4集:配置管理的艺术:环境变量、多环境配置与安全实践
开发语言·python·安全·项目配置·开发基础
zezexihaha15 小时前
AI + 制造:从技术试点到产业刚需的 2025 实践图鉴
人工智能·制造