我试图用双破折号-“-”替换.txt文件中冒号的每个实例。
textof = []
with open("myfile.txt") as myfile:
textof = myfile.readlines()
for line in textof:
if ":" in line:
for char in line:
if char == ":":
line = line.replace(":", "--")
print(textof[0])
print()返回的字符串与原始.txt中的字符串相同-带有冒号,并且没有双破折号。不知道我在做什么错。
答案 0 :(得分:4)
您被误导了。替换 正在发生,只是没有保存。当你做
line = line.replace(":", "--")
您没有从line
更改textof
-而是要创建一个全新的变量,并更改名称line
指向该变量。要更改原件,您需要执行以下操作:
for idx in range(len(textof)):
textof[idx] = textof[idx].replace(":", "--")
直接更改列表textof
。否则,您可能会浮华,以列表理解的方式进行操作,这是惯用的方式-这不会修改原始列表,而是根据您的需要创建一个新列表:
replacedLines = [line.replace(":", "--") for line in textof]
请注意,您也想将此内容写入文件,并且必须明确地执行此操作:
with open("myfile.txt", "w") as myfile:
myfile.writelines(replacedlines)