Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 - Fatal编程技术网

Python 如何逐行编辑文件并根据条件将文本插入文档?

Python 如何逐行编辑文件并根据条件将文本插入文档?,python,file,Python,File,我有一个叫做words.txt的文件。它是5行字母: A. B C D 我想让python逐行读取这个文件。如果b后面跟着c,我想插入3个零,即0、0、0,并将它们作为3行附加在同一个文件或不同文件的b下。所需的结果将是一个名为words_edited.txt的新文本文件,如下所示: A. B 0 0 0 C D 这是我目前的代码: def function(): infile = open('words.txt') outfile = open('words_edited.tx

我有一个叫做words.txt的文件。它是5行字母:

A. B C D 我想让python逐行读取这个文件。如果b后面跟着c,我想插入3个零,即0、0、0,并将它们作为3行附加在同一个文件或不同文件的b下。所需的结果将是一个名为words_edited.txt的新文本文件,如下所示:

A. B 0 0 0 C D 这是我目前的代码:

def function():
    infile = open('words.txt')
    outfile = open('words_edited.txt', 'w')

    for line in infile:
        if line == 'b' and next(infile) == 'c':
            outfile.write('0\n0\n0\n')

if __name__ == '__main__':
    function()

首先,您需要实际阅读这些行,因此需要将infle=open'words.txt'替换为

infle=打开“words.txt” 字母=填充e.readlines 或者最好使用.read.splitlines删除每个字母后面的尾随字符。如果在修改后打印内嵌,如果选择后一个选项,您应该会看到一个类似于['a','b','c','d']的列表。现在,您正在使用一个列表,您可以简单地对它进行迭代,将元素添加到另一个列表中,并检查当前字母是否为b,后面是否跟c,以及是否也将零添加到列表中。完成后,您可以将列表元素连接到字符串中,并将其写入输出文件。此外,在使用完文件后,不要忘记关闭它们。生成的代码如下所示:

def功能: infle=打开“words.txt” 字母=填充。读取。拆分线 outfile=打开'words\u edited.txt','w' res=[] n=四个字母 对于我在兰根: 决议附件[i] 如果字母[i]=“b”和i+1!=n和字母[i+1]=“c”: res.append'0\n0\n0' 输出文件。写入“\n”。连接 结束 关闭 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 作用
可能有一种更有效的方法,但我想让它尽可能简单,以便您更好地理解。

谢谢您的回复。文档中实际上没有任何尾随字符,我只是想说明字符在单独的行上。这是否意味着我不会使用:outfile.write'\n'.joiner?如果它们在单独的行上,文档中有\n,但您不将它们视为\n,则将它们视为实际的新行。因此,如果希望结果文件中的字母位于单独的行上,则仍然需要utfile.write'\n.joinres