如何在python中更新文件的内容

时间:2016-05-08 05:39:06

标签: python-3.x

def update():
    global mylist
    i = j = 0
    mylist[:]= [] 
    key = input("enter student's tp")
    myf = open("data.txt","r+")
    ml = myf.readlines()
    #print(ml[1])
    for line in ml:
      words = line.split()
      mylist.append(words)
    print(mylist)
    l = len(mylist)
    w = len(words)
    print(w)
    print(l)
    for i in range(l):
        for j in range(w):
            print(mylist[i][j])
##            if(key == mylist[i][j]):
##                print("found at ",i,j)
##                del mylist[i][j]
##                mylist[i].insert((j+1), "xxx")

以下是错误

  

打印(MYLIST [i] [j])

     

IndexError:列表索引超出范围

我正在尝试更新文件中的内容。我将文件作为行保存在列表中,然后将每行保存为另一个单词列表。所以“mylist”是一个2D列表,但它给了我索引

的错误

1 个答案:

答案 0 :(得分:0)

您的l变量是最后行列表的长度。其他人可能会更短。

更好的习惯用法是使用for循环迭代列表。 但还有更好的方法。

看来你想用字符串xxx替换“tp”(无论是什么)。更快的方法是使用正则表达式。

import re

with open('data.txt') as myf:
    myd = myf.read()
newd = re.sub(key, 'xxx', myd)
with open('newdata.txt', 'w') ad newf:
    newf.write(newd)