亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中查找和替換文本文件

在python中查找和替換文本文件

肥皂起泡泡 2021-11-30 16:59:57
下面是代碼,但輸出是錯誤的,它只在循環時輸出第一個索引值。當我打印 col、rac 和 mon 的值時,它會起作用。我還檢查了 i 值以確保它們以正確的方式遞增。文本文件:Fav Color   -- *color* Fav Car     -- *car*Number      -- *Money*代碼:with open('carstest.txt', 'r') as file :    testdata = file.read()colors = ["RED","GREEN","BLUE"]car =['Ferrari', 'Mustang','Camero']Money = ['one','two','three']i =0while i <len(colors):    col = colors[i]    rac = car[i]    mon = Money[i]    testdata = testdata.replace('*color*',  col)    testdata = testdata.replace('*car*', rac)    testdata = testdata.replace('*Money*', mon)    print(testdata)    i+=1else:    print ("DONE")輸出:Fav Color   -- RED Fav Car     -- FerrariNumber  -- oneFav Color   -- RED Fav Car     -- FerrariNumber  -- oneFav Color   -- RED Fav Car     -- FerrariNumber  -- oneDONE期望輸出:Fav Color   -- RED Fav Car     -- FerrariNumber  -- oneFav Color   -- GREENFav Car     -- MustangNumber  -- twoFav Color   -- BLUEFav Car     -- CameroNumber  -- threeDONE
查看完整描述

2 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

一旦完成了第一輪替換,就不再需要替換占位符。如果您從testdata每次迭代的原始值開始,您應該沒問題。


查看完整回答
反對 回復 2021-11-30
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

問題出在while算法上。對于每個額外的循環,您需要重新加載變量的原始內容(文件內容)。簡而言之,您要查找一個字符串*color*,但不幸的是,該字符串已str.replace()被使用而不再存在。因此testdata已更改并且下一個循環重復不再相關。否則你必須解決算法。例如,在while循環開始時,創建一個臨時變量:


with open('carstest.txt', 'r') as file :

    testdata = file.read()


colors = ['RED','GREEN','BLUE']

car =['Ferrari', 'Mustang','Camero']

Money = ['one','two','three']


i = 0

while i < len(colors):

    s = testdata

    s = s.replace('*color*' , colors[i])

    s = s.replace('*car*'   , car[i])

    s = s.replace('*Money*' , Money[i])

    print(s)

    i += 1

else:

    print ("DONE")


查看完整回答
反對 回復 2021-11-30
  • 2 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號