Python按行处理文件中的序号

这篇博客介绍了如何使用Python处理TXT文件,包括去除空行、重新编号序号以及在行间添加空行。首先,通过strip()方法去除文件中的空行,然后使用正则表达式移除原有编号并添加新的连续序号,最后在行与行之间插入空行以美化格式。这是一个实用的文件处理技巧,适合需要合并和整理文本记录的情况。
摘要由CSDN通过智能技术生成

前言

1、本文以 TXT 文件为例,使用Python按行处理文件中的序号。

2、不知大家有没有这样的经历,你在自己的实验室电脑上有一个文件,文件中记录了自己不熟悉的单词或者自己写代码过程中的一些思想,都是按条记录的,序号是从1开始的。放假回家后,在家恰巧也学习了,又在自己笔记本电脑上做了同样的工作,序号也是从1开始的(你不记得实验室电脑上最后一条记录是多少了)。回到学校后你想把两个文件合并,序号按顺序排列。

3、网上虽然有很多python的文章,但我找了下,没有能直接解决我问题的文章,我大概花了两个小时才解决这一个小问题,很是浪费时间,因此准备把它记录下来,说不定就帮助了正在看文章的你呢,嘿嘿。

去除文件中的空行

1、假设你的文件中有空行,使用strip()方法去除。代码如下:
2、文件路径需要换成绝对路径。

file1 = open('test.txt', 'r', encoding='utf-8')      # 要去掉空行的文件 
file2 = open('test1.txt', 'w', encoding='utf-8')     # 生成没有空行的文件
try:
    for line in file1.readlines():      # 函数一次读取整个文本文件,但是将文本文件以行为单位将内容处理为一个关于行的列表。
    	if line == '\n':
        	line = line.strip("\n")
        file2.write(line)
finally:
   file1.close()
   file2.close()

去除原有的编号,换成新的标号

1、如果上述没有去除空行直接执行这一步的话,空行也会被添加一个序号。所以上一步不可少。
2、使用正则表达式去除文件中的原有的标号,然后迭代为每一行添加序号。代码如下:

import re
with open('test1.txt', 'r', encoding='utf-8') as f:
    lines =f.readlines()                         # 函数一次读取整个文本文件,但是将文本文件以行为单位将内容处理为一个关于行的列表。
    for i in range(len(lines)):
        lines[i] = re.sub(r'\d+\.', '', lines[i])  # 去除文件中的原有的标号
    lines=[str(index1)+"."+temp1.rstrip()+'\n' for index1,temp1 in enumerate(lines,start=128)]    # start设置成你想要的开始序号
with open('test2.txt', 'w', encoding='utf-8') as f:
    f.writelines(lines)

为文件行与行之间添加空行:

1、为了美观,需要在行与行之间添加空行。代码如下:

file1 = open('test2.txt', 'r', encoding='utf-8')      # 没有空行的文件
file2 = open('test3.txt', 'w', encoding='utf-8')      # 生成带空行的文件 
try:
    for line in file1.readlines():    # 函数一次读取整个文本文件,但是将文本文件以行为单位将内容处理为一个关于行的列表。
        file2.write(line)
        file2.write('\n')
finally:
    file1.close()
    file2.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值