首页 > 解决方案 > 如何使用 Python 将文本文件的当前行和上一行保存在变量中?

问题描述

不确定我是否正在尝试以最佳方式完成此任务,但是我想比较同一文本文件中的当前行和前一行,以检查是否有新的文本段落开始。在我的任务中,我需要知道当前行是否以“from”开头,如果上一行是新行,那么我需要停止将文本保存在数组中并开始将其保存在新数组中。

例子:

array1 中保存的一些文本

(新队)

新文本需要保存在 array2 中

我已经发布了我的代码作为我需要做什么的想法。

with open(testEmail) as f:
        prevline = f.readLines()
        nextline = f.readlines()
        if line in prevline starts with"\n"
            if line in nextline starts with "From"
                //start saving in new array
        //save in array1

这在python中可能吗?

标签: python

解决方案


是的,你的逻辑是正确的。但是这个实现的问题是你只检查下一行,而没有检查上一行。例如,如果nextline = \nprevline = from。对于这种情况,您可以考虑在读取 prevline 后立即检查条件,然后再读取下一行。

使用 readline() 而不是 readlines()

前者只读取一行,而后者将读取文件中的所有内容。对于您的情况,readline()就足够了。

with open(testEmail) as f:
        prevline = f.readLine()
        if nextline in  ['\n', '\r\n']:
            if prevline == "From":
                //start saving in new array
        else:
           nextline = f.readline()
           if prevline in  ['\n', '\r\n']:
               if nextline == "From":
                //start saving in new array
           //save in array1

我希望你能理解这里的逻辑。


推荐阅读