Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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-2.7中有更好的方法覆盖文件吗?_Python_Python 2.7_File - Fatal编程技术网

在python-2.7中有更好的方法覆盖文件吗?

在python-2.7中有更好的方法覆盖文件吗?,python,python-2.7,file,Python,Python 2.7,File,我想覆盖一个文件以更改某一行。我提出的唯一代码如下: import os def update(fil, argument, line): z = fil.name k = fil.readlines() k[line] = argument m = file.open("test.txt") for e in k: m.write(str(e)) os.remove(fil) m.name = z 函数如下:我有三个参

我想覆盖一个文件以更改某一行。我提出的唯一代码如下:

import os

def update(fil, argument, line):
    z = fil.name
    k = fil.readlines()
    k[line] = argument
    m = file.open("test.txt")
    for e in k:
        m.write(str(e))
    os.remove(fil)
    m.name = z
函数如下:我有三个参数:

  • 我要覆盖的文件
  • 我想写的论点
  • 这是争论的重点
然后,我将文件的名称和行存储在两个变量z和k中,我说k的第(行)个元素是参数。之后,我创建一个新文件,将k写入其中,删除第一个文件,并将新文件的名称更改为z


我已经很久没有用Python编程了,所以非常欢迎所有的帮助

不清楚你想做什么。您是要覆盖一个文件,还是只替换文件中的一行?我正在尝试替换一行,但无法覆盖整个文件。我对此感到很沮丧。嗯,你可以把它映射到内存中。但重写文件以更改行是常见的做法。“问题”是,文件无论如何都不是基于行的,因此,要仅更改一行,新行的长度必须完全相同,才能正常工作。请注意:在内存中加载文件是没有用的。它不会加快任何速度,只会浪费内存。@Prof.Falken:OP的代码通过调用
fil.readlines()
将整个文件加载到内存中。