如何使用python从文本文件中删除所选文本?

时间:2018-07-03 22:19:16

标签: python python-3.x

我的文本显示在上方的链接中,我想将文本保留在关键字“-#pipeline”和“-#pipeline”之间,其余的关键字行(如“-#nonpipelined”)删除并写入另一个新文件。  简而言之,新文件中应包含“-#nonpipelined”之间提到的所有文本示例文本。

我在这里尝试过:

         file=open("vhdl.txt","w+")
         file1=open("new.txt","w")
         q1="--#pipeline"

对于文件中的行:   如果line ==“-#”:      如果行== q1:         打破          如果line ==“-#。”             file1.write(行)

2 个答案:

答案 0 :(得分:0)

添加类似布尔标志的内容以在您希望忽略一行时提取

with open("file.txt") as f:
    ignore = False
    for line in f:
        pipelined = f.startswith("--#pipeline")
        ignore = (pipelined and not ignore) 
        if not ignore:
            print(line)

使用CLI输出重定向来获取新文件

python script.py > output.txt

答案 1 :(得分:0)

import re 
string = """   --shb hdjhsjkcjdbcjbdhcbhcc jsbjcbdkjbdskjcbkjsdjc jdcnjksdncjk kjbckjbdskj

   --#pipelined 
jck jhcdjdh jdhcdbcbdh hcbdhjbdc jbdcwjk jdbjkcbwjk kwjcbkjwdbcj kwjbdkjbchjkew
   --#pipelined 
   --#non pipleined scbkjs cjdjke jcedj
ujcdhuidh
jcdjnj
jkdbcjknsd
   --#non pipelined hcsbhsd cjdjd"""

clean = re.sub(r'--#pipelined\s*(.*?)\s*--#pipelined', '', string)

现在您可以将干净对象写入所需的任何文件。