Python按行处理文件中的序号

    科技2022-07-15  134

    前言

    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()
    Processed: 0.015, SQL: 8