TypechoJoeTheme

至尊技术网

登录
用户名
密码

Python实战:为文本文件新增行自动添加序列号,python添加文本内容

2025-11-23
/
0 评论
/
1 阅读
/
正在检测是否收录...
11/23

例如,第一节可能如下所示:

1. 标题:清晨的菜市场 关键词:烟火气、市井、新鲜食材 描述:在城市尚未完全苏醒时,菜市场已开始热闹起来。 正文:天刚蒙蒙亮,街角的菜市场已经灯火通明……(约1000字)

当新增第二节时,程序应自动识别已有最大序号,并从“2.”开始写入新内容,避免重复或跳号。

实现思路:读取、解析、递增、写入

要实现这一功能,核心逻辑分为四个步骤:

  1. 读取现有文件:打开目标文本文件,读取所有已有内容。
  2. 解析当前最大序号:遍历每一行,提取开头的数字,确定当前已使用的最大编号。
  3. 生成新序号内容:基于递增后的序号,拼接新的标题、关键词、描述和正文。
  4. 追加写入文件:将新内容以追加模式写入原文件,保持原有数据不变。

这个流程看似简单,但在实际操作中需注意边界情况,如文件为空、序号格式不统一、意外中断等。因此,代码设计必须具备一定的健壮性和容错能力。

编写核心脚本

以下是完整的Python实现代码:

python
import os
import re

def extractnumberfrom_line(line):
"""从行首提取序号数字"""
match = re.match(r'^(\d+).', line.strip())
if match:
return int(match.group(1))
return -1 # 无效行返回-1

def getnextserial_number(filename):
"""读取文件并返回下一个可用序号"""
if not os.path.exists(filename):
return 1 # 文件不存在则从1开始

max_num = 0
try:
    with open(filename, 'r', encoding='utf-8') as f:
        for line in f:
            num = extract_number_from_line(line)
            if num > max_num:
                max_num = num
except Exception as e:
    print(f"读取文件时发生错误:{e}")
    return max_num + 1

return max_num + 1

def addnewsection(filename, title, keywords, description, content):
"""向文件中添加新的一节,带自动序号"""
serial = getnextserial_number(filename)

section = (
    f"{serial}. 标题:{title}\n"
    f"关键词:{keywords}\n"
    f"描述:{description}\n"
    f"正文:{content}\n\n"
)

try:
    with open(filename, 'a', encoding='utf-8') as f:
        f.write(section)
    print(f"✅ 第 {serial} 节已成功添加")
except Exception as e:
    print(f"写入文件失败:{e}")

示例调用

if name == "main":
filepath = "cityslow_life.txt"

# 模拟新增两节内容
add_new_section(
    file_path,
    "清晨的菜市场",
    "烟火气、市井、新鲜食材",
    "在城市尚未完全苏醒时,菜市场已开始热闹起来。",
    "天刚蒙蒙亮,街角的菜市场已经灯火通明。摊主们熟练地摆开竹筐,青翠的蔬菜上还挂着露水,鱼贩手中的银鳞在灯光下闪闪发亮……"
)

add_new_section(
    file_path,
    "午后的老茶馆",
    "怀旧、闲适、邻里交流",
    "一间藏在巷子深处的老茶馆,承载着几代人的记忆。",
    "推开那扇吱呀作响的木门,一股陈年茶叶的香气扑面而来。八仙桌旁坐着几位老人,他们一边喝茶,一边聊着家长里短……"
)

运行效果与验证

运行上述脚本后,生成的 city_slow_life.txt 文件内容如下:

1. 标题:清晨的菜市场
关键词:烟火气、市井、新鲜食材
描述:在城市尚未完全苏醒时,菜市场已开始热闹起来。
正文:天刚蒙蒙亮,街角的菜市场已经灯火通明。摊主们熟练地摆开竹筐,青翠的蔬菜上还挂着露水,鱼贩手中的银鳞在灯光下闪闪发亮……

  1. 标题:午后的老茶馆
    关键词:怀旧、闲适、邻里交流
    描述:一间藏在巷子深处的老茶馆,承载着几代人的记忆。
    正文:推开那扇吱呀作响的木门,一股陈年茶叶的香气扑面而来。八仙桌旁坐着几位老人,他们一边喝茶,一边聊着家长里短……

可以看到,每一节都按顺序编号,结构清晰,便于后续查阅与编辑。即使中途删除某一行或手动修改序号,下次添加时仍能正确识别最大值并继续递增。

扩展应用:适应更多写作场景

该脚本的设计具有良好的扩展性。你可以根据不同的写作类型调整字段结构。例如:

  • 写小说时可改为:“章节名”、“人物”、“场景”、“正文”
  • 做知识卡片时可设为:“主题”、“标签”、“摘要”、“详细解释”
  • 记录读书笔记则可用:“书名”、“页码”、“金句”、“感悟”

只需修改 add_new_section 函数中的字段名称和拼接逻辑即可快速适配。

此外,还可以进一步增强功能:

  • 添加时间戳记录创建时间;
  • 支持从CSV或Excel导入批量内容;
  • 结合自然语言处理模型自动生成关键词或摘要;
  • 提供命令行接口或图形界面方便非程序员使用。

总结:让技术服务于创作本身

写作的本质是表达与思考,而不应被繁琐的格式整理所束缚。通过这样一个简单的Python脚本,我们把机械性的编号工作交给计算机完成,从而让自己更专注于内容的深度与质量。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/39147/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云