python - 如何使用 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中可能吗?
解决方案
是的,你的逻辑是正确的。但是这个实现的问题是你只检查下一行,而没有检查上一行。例如,如果nextline = \n
和prevline = 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
我希望你能理解这里的逻辑。
推荐阅读
- javascript - 如何转换unicode并在浏览器中显示?反应
- android - 滚动将值添加到文本视图
- reactjs - React Redux Auth 中间件
- python - 独立于维度的 Numpy 花式/高级索引
- excel - Excel 2016 VBA - 更高效地创建仪表板
- python - Django rest 框架:从外部包中捕获 ValidationError
- javascript - Angular ng-repeat 表:来自对象的动态列
- angular - Angular Cli 错误:位置 1008 的 JSON 中的意外标记]
- java - 如何在运行时从数据库动态加载身份提供者 (IdP) Sprint Security SAML
- python - IntelliJ 无法导入模块,但从命令行可以正常工作