-1

在接下来的迭代中,一旦满足查找行的条件,我如何修改并写入包含列表的文本文件,该行位于距离迭代到达的位置“n”行的位置?

    llll=['aaa','ww','emmm','wiguy','ynof','sijegy']
    mfw=open(r"D:\file.txt",'r')
    listmfw=mfw.readlines()
    for i, line in enumerate(listmfw):
            if line != '\n':
                if not (line.split()[0] in llll):
                    if (line.strip('\n') == 'wiguy'):
                    i=i-42
                    print('zugyt')

#As the line where I want to write is empty,I tried:
                    line=line.replace('\n\',''zugyt')

但什么也没有发生

我添加了缺少的内容 - 输入错误!

4

2 回答 2

0

我想你可能误解了python的文件接口是做什么的。即使您将打开更改为读/写,然后写入文件,所做的只是覆盖您写入时文件中的内容。您可能想看一下fileinput,下面将所有空白换行符替换为“Test\n”:

from __future__ import print_function
import fileinput

file = fileinput.input('test.txt', inplace=1)
for line in file:
    if line == '\n':
        print('Test')
    else:
        print(line, end='')
于 2013-09-14T22:15:57.557 回答
0

我找到了一个工作解决方案,它在我需要的位置写下我需要的东西,相对于指定条件找到的另一个位置。这是::

    mfw=open(r"D:\file.txt",'r')
    listmfw=mfw.readlines()
    for i, line in enumerate(listmfw):
            if line != '\n':
                #if not (line.split()[0] in llll):
                    if (line.strip('\n') == 'wiguy'):
                        listmfw[i-43]='bzz'
                        out = open(r"D:\Users\cristina\Documents\horia\Linguistics\file.txt", 'w')
                        out.writelines(listmfw)
                        listmfw[i-31]='vrrr'
                        out.writelines(listmfw)
                        listmfw[i-19]='dopiu'
                        out.writelines(listmfw)
                    if (line.strip('\n') == 'emmm'):
                        listmfw[i-13]='ommm'
                        out.writelines(listmfw)
                    if (line.strip('\n') == 'sijegy'):
                        listmfw[i-19]='mrrr'
                        out.writelines(listmfw)
                        out.flush()
                        out.close()
    mfw.close()
于 2013-09-15T12:29:48.557 回答