【问题标题】:Python read specific lines of textPython 读取特定的文本行
【发布时间】:2012-07-30 20:31:41
【问题描述】:

我在阅读特定行时遇到问题。这类似于这里回答的问题: python - Read file from and to specific lines of text 不同的是,我没有固定的结束标记。让我举个例子:

--------------------------------
\n
***** SOMETHING *****     # i use this as my start
\n
--------------------------------
\n
data of interest
data of interest
data of interest
\n
----------------------- #this will either be dashes, or EOF
***** SOMETHING *****
-----------------------

我尝试执行与上述链接类似的操作,但我无法创建 if 语句来中断循环,因为我不知道它是否会是 EOF。

【问题讨论】:

    标签: python text readlines


    【解决方案1】:

    这个怎么样:

    def getBlocks(filepath):
        with open(filepath) as f:
            blocks = []
            go = False
            for line in f:
                if line.strip() == startDelimiter:
                    block = ''
                    go = True
                if go:
                    block += line
                if line.strip() == endDelimiter:
                    blocks.append(block)
                    block = ''
                    go = False
            if block:
                blocks.append(block)
        return blocks
    

    【讨论】:

    • 如果我错了,请纠正我,但如果我的文件没有 endDelimiter(即在最后一个感兴趣的数据处结束),这将不起作用。
    • 你说的完全正确(我知道我忘记了什么)。答案已更新
    【解决方案2】:

    美妙之处在于,如果您点击 EOF,文件将停止迭代。

    ended = False
    for line in f:
        ended = line == MY_END_MARKER
    

    【讨论】:

      【解决方案3】:

      你就不能这样做

      parts = my_file.read().split("-----------------------")
      print parts
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-16
        • 2021-10-28
        • 2016-10-19
        • 1970-01-01
        • 2015-09-06
        • 2021-03-28
        • 1970-01-01
        相关资源
        最近更新 更多