簡體   English   中英

python:替換文件中的多個單詞

[英]python : replace mutiple words in a file

我有一個文件apple.py ,它的單詞是appleApple 並且有一個空白文件pear.py

我想讀取apple.py的內容並將其寫入pear.py並進行修改
applepearApplePear

我這樣做是這樣的:

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)

您的代碼無法正常工作的原因是:

  1. 您將整個數據寫入文件兩次。
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM