覆盖Python中的特定行

时间:2016-03-17 19:08:21

标签: python-3.x fwrite

我有一个简单的程序来操作某些文本文件中的一些存储数据。但是我必须将名称和密码存储在不同的文件中以供python阅读。

我想知道我是否可以在一个文件的两个单独的行上获取这两个单词(名称和密码)并让python根据我选择覆盖的内容覆盖其中一行(密码或者名称)。

我可以通过以下方式让python读取特定行:

linenumber=linecache.getline("example.txt",4)

理想情况下ID就像这样:

linenumber=linecache.writeline("example.txt","Hello",4)

所以这只会在第4行的“example.txt”中写“Hello”。

但不幸的是,它似乎并不那么简单,我可以将这些文字存储在单独的文件中,但总体来说这样做的规模较大,我将会有很多文本文件都被命名不同的,用不同的词语。

如果有人能提供帮助,我们将不胜感激!

谢谢,詹姆斯。

1 个答案:

答案 0 :(得分:0)

您可以尝试内置open()功能:

def overwrite(filename,newline,linenumber):
    try:
        with open(filename,'r') as reading:
            lines = reading.readlines()
        lines[linenumber]=newline+'\n'
        with open(filename,'w') as writing:
            for i in lines:
                writing.write(i)
        return 0
    except:
        return 1 #when reading/writing gone wrong, eg. no such a file

小心!它在循环中重新编写所有行,当涉及异常example.txt时可能已经空白。您可能希望始终将所有行存储在列表中,以便将它们写回异常的文件中。或者保留旧文件的备份。