我正在解决一个问题,我必须读取文件,然后将所有出现的字符串替换为另一个字符串,然后将文件保存到其他路径。我想我可以弄清楚保存文件部分,只是在替换字符串时遇到麻烦。这就是我到目前为止所拥有的。
arr = ['This parrot is no more. \n', 'It has ceased to be. \n', "It's expired and gone to meet its maker. \n"]
G = 'This'
B = 'B'
for x in arr:
y = x.split(' ')
for i in y:
i.replace(G,B)
print(i)
替换不执行任何操作,这对我来说没有意义,因为当我在type()
上执行i
时,它告诉我它是一个字符串,而replace是一个字符串方法。
非常感谢
答案 0 :(得分:3)
这里您要更改每个元素的临时副本,而不是实际列表。因此,所做的更改不是在实际的句子列表中进行的。
for x in arr: y = x.split(' ') for i in y: i.replace(G,B) print(i)
您应遵循基于索引的方法,即
arr = ['This parrot is no more. \n', 'It has ceased to be. \n',]
G = 'This'
B = 'B'
for i in range(len(arr)):
arr[i].replace(G,B)
print (are)
希望这会有所帮助 对于缩进问题,我感到抱歉,因为我现在正在使用智能手机。
答案 1 :(得分:2)
在这种情况下,我不会使用str.replace
,因为它可能会带来意想不到的后果,例如当您只想将Thistle
替换为{{1 }}。而是比较单词并替换为匹配项:
Btle
或者,您可以使用正则表达式,在要替换的字符串周围添加单词边界:
This
答案 2 :(得分:0)
您没有保存结果。另外,您不需要拆分x
。
x = 'This parrot is no more. \n'
x = x.replace('This', 'B')
print(x, end='') # -> B parrot is no more.