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

Python语法系列博客 · 第6期[特殊字符] 文件读写与文本处理基础

上一期小练习解答(第5期回顾)

✅ 练习1:字符串反转模块 string_tools.py
# string_tools.py
def reverse_string(s):return s[::-1]

调用:

import string_tools
print(string_tools.reverse_string("Hello"))  # 输出 "olleH"
✅ 练习2:创建包 my_math

目录结构:

my_math/
├── __init__.py
├── basic.py
└── advanced.py


my_math/basic.py

def add(a, b):return a + b

 my_math/advanced.py

import mathdef sqrt(x):return math.sqrt(x)

调用方式:

from my_math import basic, advanced
print(basic.add(2, 3))       # 输出 5
print(advanced.sqrt(16))     # 输出 4.0

✅ 练习3:随机验证码

import random
import stringdef generate_code(length=6):chars = string.ascii_letters + string.digitsreturn ''.join(random.choice(chars) for _ in range(length))print(generate_code())  # 示例输出:a8B2kZ

 

本期主题:文件操作与文本处理


🟦 6.1 打开文件

Python 使用内置的 open() 函数来打开文件。

f = open("example.txt", "r")  # 读取模式

常见模式:

模式含义
'r'只读(默认)
'w'写入(会清空原文件)
'a'追加
'b'二进制模式
'+'读写模式

6.2 读取文件内容

f = open("example.txt", "r")
content = f.read()
print(content)
f.close()

✅ 更推荐的写法:使用 with 自动关闭文件

with open("example.txt", "r") as f:content = f.read()print(content)

其他读取方式:

f.readline()      # 读取一行
f.readlines()     # 读取所有行,返回列表

 6.3 写入文件

with open("output.txt", "w") as f:f.write("Hello, Python!\n")f.write("Let's write some text.\n")

注意:如果文件存在,"w" 模式会清空原文件内容。

6.4 文本处理技巧

✅ 字符串切片
text = "Hello, Python"
print(text[7:])   # 输出 Python

 ✅ 字符串替换

text = "I like apple"
new_text = text.replace("apple", "banana")
print(new_text)  # I like banana
✅ 拆分和合并
s = "apple,banana,grape"
lst = s.split(",")  # ['apple', 'banana', 'grape']
joined = "-".join(lst)
print(joined)  # apple-banana-grape

✅ 去除空白

s = "  hello \n"
print(s.strip())  # 输出 "hello"

附加:处理中文文件

with open("cn.txt", "r", encoding="utf-8") as f:content = f.read()print(content)
with open("cn_out.txt", "w", encoding="utf-8") as f:f.write("你好,世界")

本期小练习

  1. 写一个程序,读取文件 data.txt,并统计文件中总共有多少行。

  2. 写一个程序,读取文件中的每一行,并将其反转后写入到 reversed.txt 文件中。

  3. 写一个程序,从一个包含姓名的文件中筛选出所有以 "A" 开头的名字,写入 a_names.txt

小结

这一期我们学习了:

  • 文件的打开、读取、写入

  • with 的使用

  • 文本处理中的字符串操作

  • 编码问题的处理方法

你现在可以开始处理文本文件、做一些简单的文本清洗、数据预处理任务了!

第7期预告:

下一期我们将探讨:

  • 列表推导式和字典推导式

  • 更优雅地构造数据结构

  • 实际例子演练:快速处理文本数据

 

 

 

 

 

 

 

 

相关文章:

  • OCR技术与视觉模型技术的区别、应用及展望
  • 大学第一次笔记本清灰
  • 2.2/Q2,GBD数据库最新文章解读
  • 通过 Samba 服务实现 Ubuntu 和 Windows 之间互传文件
  • 单元测试的一般步骤
  • Linux操作系统--环境变量
  • PHP异常处理__Throwable
  • Vue 3 中将 ref 创建的响应式对象数据转换为普通(非响应式)的数据
  • 自动化测试相关协议深度剖析及A2A、MCP协议自动化测试应用展望
  • 基于大模型的下肢静脉曲张全流程预测与诊疗方案研究报告
  • [Swift]pod install成功后运行项目报错问题error: Sandbox: bash(84760) deny(1)
  • Django 实现服务器主动给客户端发送消息的几种常见方式及其区别
  • 医院科研科AI智能科研支撑平台系统设计架构方案探析
  • Java 动态代理教程(JDK 动态代理)(以RPC 过程为例)
  • 【java实现+4种变体完整例子】排序算法中【希尔排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • 从FPGA实现角度介绍DP_Main_link主通道原理
  • 【AIVS】OPENAIVS开源视频推理系统简介
  • Mermaid 是什么,为什么适合AI模型和markdown
  • 螺旋升降机可以通过人工智能来进行选型吗
  • 第34讲|遥感大模型对比实战:SAM vs. CLIP vs. iSAM
  • 翁东华卸任文和友小龙虾公司董事,此前抢镜“甲亢哥”惹争议
  • 广电总局加快布局超高清视听产业链,多项成果亮相
  • 今年底,全国新拍电视剧、纪录片将基本实现超高清化
  • “女孩被前男友泼汽油烧伤致残案”二审择期宣判
  • 秦洪看盘|新热点涌现,A股活力渐显
  • 文旅部:今年中国旅游日活动合作单位扩大至60多家