[英]python : replace mutiple words in a file
我有一個文件apple.py
,它的單詞是apple
和Apple
。 並且有一個空白文件pear.py
我想讀取apple.py
的內容並將其寫入pear.py
並進行修改
apple
對pear
, Apple
對Pear
。
我這樣做是這樣的:
def modify_city():
with open('city.py', 'r+') as f:
read_data = f.read()
with open('beijing', 'w') as f:
f.write(read_data.replace('city', 'beijing')) #it works
f.write(read_data.replace('City', 'Beijing')) #it doesn't work
題:
在代碼中,第一個replace()
有效,但是第二個replace()
不起作用。我該怎么辦?
您將整個read_data寫入文件兩次。
read_data = read_data.replace('city','beijing')
read_data = read_data.replace('City','Beijing')
f.write(read_data)
您的代碼無法正常工作的原因是:
str.replace()
返回替換完成的字符串,而不更改原始字符串。 通過做
f.write(read_data.replace('city', 'beijing'))
第一次,您將打印到文件read_data
並替換為'city'
和'beijing'
但沒有將更改保存到read_data
。 第二次當你做
f.write(read_data.replace('City', 'Beijing'))
之前的替換未保存,因此導致替換了原始字符串。
話雖這么說,您有兩種選擇:
def modify_city():
with open('city.py', 'r+') as f:
read_data = f.read()
with open('beijing.py', 'w') as f:
f.write(read_data.replace('city', 'beijing').replace('City', 'Beijing'))
要么
def modify_city():
with open('city.py', 'r+') as f:
read_data = f.read()
read_data = read_data.replace('city', 'beijing')
read_data = read_data.replace('City', 'Beijing')
with open('beijing.py', 'w') as f:
f.write(read_data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.