Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 搜索、删除并输出到新创建的文件_Python_File_Line_Lines - Fatal编程技术网

Python 搜索、删除并输出到新创建的文件

Python 搜索、删除并输出到新创建的文件,python,file,line,lines,Python,File,Line,Lines,我希望创建一个函数,该函数将搜索输入文件的每一行,搜索该文件的每一行,查找特定的字符串序列,如果找到,则从输入文件中删除整行,并将这一行输出为具有类似格式的新创建的文本文件 输入文件格式始终如下所示: Firstname:DOB Firstname:DOB Firstname:DOB Firstname:DOB 等等 我想输入这个文件,然后搜索DOB(19111991),如果它在行中找到这个字符串,那么从输入文件中删除它,最后将它转储到一个新的.txt文档中 老实说,我很无知,但我想这是我的逻

我希望创建一个函数,该函数将搜索输入文件的每一行,搜索该文件的每一行,查找特定的字符串序列,如果找到,则从输入文件中删除整行,并将这一行输出为具有类似格式的新创建的文本文件

输入文件格式始终如下所示:

Firstname:DOB
Firstname:DOB
Firstname:DOB
Firstname:DOB
等等

我想输入这个文件,然后搜索DOB(19111991),如果它在行中找到这个字符串,那么从输入文件中删除它,最后将它转储到一个新的.txt文档中

老实说,我很无知,但我想这是我的逻辑尝试,即使有些代码可能是错误的:

def snipper(iFile)
    with open(iFile, "a") as iFile:
    lines = iFile.readlines()
    for line in lines:
        string = line.split(':')
        if string[1] == "19111991":
            iFile.strip_line()
            with open("newfile.txt", "w") as oFile:
                iFile.write(string[0] + ':' + '19 November' + '\n')
任何帮助都很好。

请尝试以下代码:

def snipper(filename)
    with open(filename, "r") as f:
        lines = f.readlines()

    new_data = filter(lambda x: "19111991" in x, lines)
    remaining_old_data = filter(lambda x: "19111991" not in x, lines)

    with open("newfile.txt", "w") as oFile:
        for line in new_data:
            oFile.write(line.replace("19111991", "19th November 1991'"))

    with open(filename, "w") as iFile:
        for line in remaining_old_data:
            iFile.write(line)

你的问题到底是什么?你测试过那个代码吗?它有用吗?如果没有,你试过吗?不幸的是,它不起作用。我只想让函数在输入文件中搜索'19111991',如果它找到它,从输入文件中删除该行并将其转储到新的输出文件中。你说的“不工作”是什么意思?错误(提供完整的回溯)?意外输出(提供输入以及预期和实际输出)?代码中的问题在哪里(请提供答案)?以后,请按照下面的步骤检查答案。简而言之,您可以将lambdas看作一行函数。非常感谢您的帮助-但还有一个问题。您是否可以编辑代码,使新文件的输出为“FirstName:1991年11月19日”?我不确定这是否实用。嘿,你能编辑一下你的代码,把1911991和2011991删掉吗?由此,我可以对代码做更多的工作。非常感谢:)@Eric1989不是这样的。。我已经回答了您原来的问题,如果您有新问题,请改为作为新问题提问:)