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

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期预告:

下一期我们将探讨:

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

  • 更优雅地构造数据结构

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

 

 

 

 

 

 

 

 

相关文章:

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")) # 输出…...

多人五子棋联机对战平台 测试报告

目录 项目介绍 测试用例设计 部分功能测试示例 自动化测试 测试范围 排除范围 自动化测试目录​编辑 执行全部自动化测试用例 性能说明 总结 性能测试 结果分析 测试总结 项目介绍 该项目基于WebSocket实现实时通信,采用SSM框架构建在线五子棋多人联机…...

docker基本使用命令

一、镜像 1、拉取镜像 docker pull busybox docker pull nginx:1.26-alpine 2、查看本地镜像 [rootRocky-1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 4e1b6bae1e48 18 hours ago 192MB busybox lates…...

欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会

2025年4月15日至16日,备受关注的第二届中国人形机器人与具身智能产业大会已在北京成功举行。作为国内前沿科技及产品服务领域的重要参与者,欣佰特科技携众多前沿产品精彩亮相,全方位展示了其在人形机器人与具身智能领域的创新产品。 在本次大…...

windows安装hadoop-3.3.5(图文教程)

本章教程,记录在Windows操作系统上安装hadoop-3.3.5的整个过程。 一、基础环境准备 JDK版本:java version “1.8.0_431” ,并且配置JAVA_HOME系统环境变量 hadoop版本:3.3.5,配置HADOOP_HOME系统环境变量。 下载地址:https://archive.apache.org/dist/hadoop/common/hado…...

【eNSP实验】OSPF单区域配置

简介 OSPF(开放最短路径优先)是一种基于链路状态算法的内部网关协议(IGP),用于自治系统内部动态路由。其核心机制为:各路由器通过泛洪链路状态通告(LSA)同步网络拓扑,构…...

从 SQL2API 到 Text2API:开启数据应用开发的新征程

在技术革新浪潮的席卷下,数据应用开发领域正经历着深刻变革。曾经,构建数据 API 需要开发者具备扎实的数据库知识和编程技能,手动编写复杂的 SQL 查询与 API 代码,这一过程不仅耗时费力,还将众多非技术人员阻挡在数据应…...

4月18日日记(补)

昨天玩的太疯狂了最后也没来得及写日记,补上() 正常的早八微积分,英语,下午的思政课非常的疯狂啊,因为是代课老师,她给我们很多机会强大加分,大家都知道这是一个追分的好机会&#x…...

手撕 简易HashMap

put()、get()、remove() 方法 计算存储数组位置和k-vNode节点 public int indexOf(K key){return key.hashCode() & (table.length - 1);}static class Node<K, V>{K key;V value;Node<K, V> next;public Node(K key, V value){this.key key;this.value val…...

【技术派后端篇】ElasticSearch 实战指南:环境搭建、API 操作与集成实践

1 ES介绍及基本概念 ElasticSearch是一个基于Lucene 的分布式、高扩展、高实时的基于RESTful 风格API的搜索与数据分析引擎。 RESTful 风格API的特点&#xff1a; 接受HTTP协议的请求&#xff0c;返回HTTP响应&#xff1b;请求的参数是JSON&#xff0c;返回响应的内容也是JSON…...

鸿蒙语言基础

准备工作 去鸿蒙官网下载开发环境 点击右侧预浏览&#xff0c;刷新和插销按钮&#xff0c;插销表示热更新&#xff0c;常用按钮。 基础语法 string number boolean const常量 数组 let s : string "1111"; console.log("string", s);let n : number …...

在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南

引言 在生成式 AI 浪潮中&#xff0c;GPU 常被视为大模型推理的唯一选择。然而&#xff0c;随着 ARM 架构的崛起和量化技术的成熟&#xff0c;CPU 推理的性价比逐渐凸显。本文基于 Amazon Graviton 系列实例与 llama.cpp 工具链&#xff0c;实测了 Llama 3、DeepSeek 等模型的…...

每日定投40刀BTC(14)20250409 - 20250419

定投 坚持 《磨剑篇》浮生多坎壈&#xff0c;志业久盘桓。松柏凌霜易&#xff0c;骅骝涉险难。砺锋临刃缺&#xff0c;淬火取金残。但使精魂在&#xff0c;重开万象端。...

详解反射型 XSS 的后续利用方式:从基础窃取到高级组合拳攻击链

在网络安全领域&#xff0c;反射型跨站脚本攻击&#xff08;Reflected Cross-Site Scripting&#xff0c;简称反射型 XSS&#xff09;因其短暂的生命周期和临时性&#xff0c;常被视为“低危”漏洞&#xff0c;威胁性不如存储型或 DOM 型 XSS。然而&#xff0c;这种看法低估了它…...

服务治理-服务注册

一个服务在真实项目部署的时候&#xff0c;如果压力较大&#xff0c;会做多实例部署。 在IDEA里面做多实例部署的话&#xff0c;只需要配置多个启动项。...

NestJS——多环境配置方案(dotenv、config、@nestjs/config、joi配置校验)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

MongoDB导出和导入数据

安装mongodump工具 参考文章mongodump工具安装及使用详解_mongodump安装-CSDN博客 MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装&#xff0c;而是需要自己手动安装。 官方网站下载链接&#xff1a;Download MongoDB Command Line Database Tools …...

数据从辅存调入主存,页表中一定存在

在虚拟内存系统中&#xff0c;​数据从辅存调入主存时&#xff0c;页表中一定存在对应的页表项&#xff0c;但页表项的「存在状态」会发生变化。以下是详细分析&#xff1a; 关键逻辑 ​页表的作用 页表是虚拟内存的核心数据结构&#xff0c;记录了虚拟地址到物理地址的映射关系…...

Serving入门

ServingHelloWorld Serverless 一个核心思想就是按需分配&#xff0c;那么 Knative 是如何实现按需分配的呢&#xff1f;另外在前面已经了解到 Knative Serving 在没有流量的时候是可以把Pod 缩容到零的。接下来就通过一些例子体验一下 Knative 缩容到零和按需自动扩缩容的能力…...

硬件操作指南——ATK-MD0430 V20

使用CC2530控制正点原子ATK-MD0430 V20显示的完整指南 本文将详细介绍如何使用CC2530单片机控制正点原子ATK-MD0430 V20显示屏&#xff0c;包括IAR开发环境的配置、硬件连接、程序编写和调试等完整步骤。 一、开发环境准备 1. IAR开发环境安装与配置 首先需要安装IAR Embed…...

【HDFS入门】HDFS数据冗余与容错机制解析:如何保障大数据高可靠存储?

目录 1 HDFS冗余机制设计哲学 1.1 多副本存储策略的工程权衡 1.2 机架感知的智能拓扑算法 2 容错机制实现原理 2.1 故障检测的三重保障 2.2 数据恢复的智能调度 3 关键场景容错分析 3.1 数据中心级故障应对 3.2 数据损坏的校验机制 4 进阶优化方案 4.1 纠删码技术实…...

UE学习记录part19

231 insect: insect enemy type 创建dead动画资源 往insect head上添加socket 创建攻击root motion动画。motion warping需要与root motion合作使用 为buff_blue创建物理资产 设置simulate physic使sinsect死亡后能落到地板上而不是漂浮在空中&#xff0c;要将die函数设置为 -…...

运行后allure报告没有自动更新(已解决)

pycharm直接运行run.py文件&#xff0c; allure生成的报告都没有更新&#xff0c;需要手动删除旧报告后再次运行才可以 pytest.ini [pytest]testpaths testcases/ addopts --alluredir ./report/result --clean-alluredir run.py主要代码 if __name__ "__main__&qu…...

深度学习在语音识别中的应用

引言 语音识别技术是人工智能领域中的一个重要分支&#xff0c;它使得机器能够理解和转换人类的语音为文本。深度学习的出现极大地推动了语音识别技术的发展。本文将介绍如何使用深度学习构建一个基本的语音识别系统&#xff0c;并提供一个实践案例。 环境准备 在开始之前&a…...

CUDA Tools 常用命令总结与记录 (需要细化)

以下是对 CUDA Toolkit 中常用工具和命令的详细总结&#xff0c;涵盖编译器、调试器、性能分析工具、GPU管理工具等核心组件&#xff1a; 一、编译器工具&#xff1a;nvcc nvcc 是 NVIDIA CUDA 编译器&#xff0c;用于编译 .cu 文件生成可执行文件或中间代码。 常用命令与参数…...

微信小程序 时间戳与日期格式的转换

1. 微信小程序 时间戳与日期格式的转换 微信小程序中的时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。例如现在北京时间2015-12-31 17:00:00的时间戳是1451552400&#xff0c;就是指从北京时间1970-01-01 08:00:00到…...

【深度学习—李宏毅教程笔记】Transformer

目录 一、序列到序列&#xff08;Seq2Seq&#xff09;模型 1、Seq2Seq基本原理 2、Seq2Seq模型的应用 3、Seq2Seq模型还能做什么&#xff1f; 二、Encoder 三、Decoder 1、Decoder 的输入与输出 2、Decoder 的结构 3、Non-autoregressive Decoder 四、Encoder 和 De…...

【人工智能学习-01-01】20250419《数字图像处理》复习材料的word合并PDF,添加页码

前情提要 20250419今天是上师大继续教育人工智能专升本第一学期的第一次线下课。 三位老师把视频课的内容提炼重点再面授。&#xff08;我先看了一遍视频&#xff0c;但是算法和图像都看不懂&#xff0c;后来就直接挂分刷满时间&#xff0c;不看了&#xff09; 今天是面对面授…...

如何从 GitHub 镜像仓库到极狐GitLab?

最近 GitHub 封禁中国用户的事情闹得沸沸扬扬,虽然官方发布的报道说中国用户被限制登录是因为配置错误导致,已经撤回了更新,中国用户已经可以正常使用。但是这就像横在国内开发者和企业头上的“达摩克利斯之剑”。为了避免 GitHub 不可用而带来的影响,国内开发者和企业可以…...

【云馨AI-大模型】2025年4月第三周AI领域全景观察:硬件革命、生态博弈与国产化突围

一、硬件算力突破点燃多智能体时代 谷歌在4月12日Cloud Next大会发布第七代TPU Ironwood&#xff0c;单芯片算力达4614 TFLOPs&#xff0c;较前代内存提升6倍&#xff0c;专为AI推理场景优化。配合发布的Gemini 2.5 Flash模型通过"思考"功能实现成本优化&#xff0c…...