Python 在找到特定行后读取行

标签 python

我试图在找到某一行后删除某些行。下面是示例:

 1. ABC01
 2. AB_Name
 3. AC_Name
 4. ID_Name
 5. ABC02
 6. AB_Name
 7. ABB_Name
 8. AC_Name
 9. AQ_Name
 10. ID_Name
 11. ABC01
 12. AP_Name
 13. AZ_Name
 14. AB_Name
 15. ID_Name

我想要删除的是 ABC01 之后的每一行,并忽略 ABC02 及其后面的行。所以我正在寻找的输出是:

 1. ABC01
 2. AB_Name
 3. AC_Name
 4. ID_Name

 11. ABC01
 12. AP_Name
 13. AZ_Name
 14. AB_Name
 15. ID_Name

我尝试过 if 语句如下:

lines = [line.rstrip('\n') for line in open('File.txt')]

listings = []

for line in lines:

    if line.startswith("ABC01"):
        continue
    if line.startswith("ID"):
        break

    listings.append(line.strip())

我使用的是Python 2.7

最佳答案

我只是保留一个标志,让我跟踪要忽略的内容和要采取的内容。

ignore = False

for line in lines:
    if line.startswith("ABC01"):
        ignore = False
    elif line.startswith("ABC02"):
        ignore = True

    if not ignore:
        listings.append(line.strip())

关于Python 在找到特定行后读取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46785347/

相关文章:

python - Mathml 到 python 中的数学符号

python - ipython 和 python 之间的输出差异

python - Bluez/Python 缓冲导致蓝牙连接延迟

python - list.append() 不保留打乱的值

python - 手动计算性能矩阵

python - 在 Python 中,如何对嵌套的整数列表 : [[1, 0]、[1,1]、[1,0]] → [3,1] 进行数值求和

python - Pandas 按两列分组并绘制

python - 如何根据 Numpy 数组的内容替换其特定条目

python - 预处理机器学习数据

python - 在 Heroku 上连续运行简单的 python 脚本