0

我想替换由我的程序创建的文件中的字符串,但我不能使用 .replace 因为它不在 3.3 中,如何使用两个输入(前一个字符串,替换)替换文件中的一行,这是代码至今:

#Data Creator
def Create(filename):
    global UserFile
    UserFile = open(str(filename), "w")
    global file
    file = (filename)
    UserFile.close()

#Data Adder
def Add(data):
    UserFile = open(file, "a")
    UserFile.write(str(data))
    UserFile.close()

#Data seeker
def Seek(target):
    UserFile = open(file, "r")
    UserFile.seek(target)
    global postition
    position = UserFile.tell(target)
    UserFile.close()
    return position

#Replace
def Replace(take,put):
    UserFile = open(file, "r+")
    UserFile.replace(take,put)
    UserFile.close

Create("richardlovesdogs.txt")
Add("Richard loves all kinds of dogs including: \nbeagles")
Replace("beagles","pugs")

我该怎么做,才能用“哈巴狗”代替“比格犬”这个词?我正在学习python,所以任何帮助将不胜感激

编辑 :

我将替换代码更改为此

#Replace
def Replace(take,put):
    UserFile = open(file, 'r+')
    UserFileT = open(file, 'r+')
    for line in UserFile:
        UserFileT.write(line.replace(take,put))
    UserFile.close()
    UserFileT.close()

但在它输出的文件中:

Richard loves all kinds of dogs including: 
pugsles

我该如何更改它,使其仅输出“哈巴狗”而不是“哈巴狗”

4

3 回答 3

0

我想到的第一个想法是遍历行并检查给定的行是否包含您要替换的单词。然后只需使用字符串方法 -​​ 替换。当然,最后应该将结果放入/写入文件。

于 2013-08-30T17:44:37.490 回答
0

也许你想到的是sedUnix shell 中的命令,它可以让你用 shell 本身的替换文本替换文件中的特定文本。

正如其他人所说,在 Python 中替换文本一直是str.replace().

希望这可以帮助!

于 2013-08-30T17:50:01.617 回答
0

在不将整个文件加载到内存的情况下,最快的方法是使用file seek, tell and flush. 将起始指针设置为位置 0,并在文件中递增len(replacement_word). 如果几个字节的片段匹配,那么您在文件中的位置设置一个标记。

扫描文件后,您可以使用标记重建文件,并使用它们之间的替换字符串连接段。

于 2013-08-30T21:59:56.903 回答