我想替换我的程序创建的文件中的字符串,但是我不能使用.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")
我该怎么做,所以它用“哈巴狗”代替“beagles”这个词? 我正在学习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
我如何改变它所以它只输出“pugs”而不是“pugsles”
答案 0 :(得分:0)
我想到的第一个想法是遍历行并检查给定的行是否包含您要替换的单词。然后只需使用字符串方法 - 替换。当然,最后应将结果放入/写入文件。
答案 1 :(得分:0)
也许您在想的是Unix shell中的sed
命令,它允许您使用shell本身的替换文本替换文件中的特定文本。
正如其他人所说,用Python替换文本一直是str.replace()
。
希望这有帮助!
答案 2 :(得分:0)
最快的方法是在不将整个文件加载到内存中的情况下使用file seek, tell and flush
。将起始指针设置为位置0,然后通过len(replacement_word)
增加文件。如果几个字节的代码段匹配,那么您可以在文件中设置标记。
扫描完文件后,使用标记重建文件,并在段之间插入替换字符串。