2017-09-15 80 views
-2

所以我堅持這個代碼,它的一點是,你輸入汽車名稱和汽車的數量,你想租,但我可以弄清楚如何更改字符串之後你.txt文件租車python:如何更改.txt文件中的字符串與輸入

def rental(): 
with open('cars.txt', 'r') as file: # cars.txt example: 
             # bmw:320:red:new:6 
     name = input('Car name: ') 
     for line in file: 
      s = line.split(':')`enter code here` 
      if name == s[0] : 
       amount = eval(input('Amount of cars')) 
       if amount > int(s[4]): 
        print('Amount is too big') 

       else: 
        t = str(int(s[4])-int(kolicina)) 
        line.replace(s[4], t)   
     else: 
      print('Car does not exist') 
+1

你應該看看[問] – pvg

+5

[如何修改文本文件?](https://stackoverflow.com/questions/125703/how-to-modify-a-text-file) – alfasin

+0

也許OT,但是這段代碼需要重構:在處理文件之前,您應該詢問並驗證用戶輸入 – Don

回答

0

如果調用帶「R」的開通,將是隻讀模式,所以如果你希望能夠寫入文件,就像使用「R +」所以:open('cars.txt', 'r+')。 此外,line.replace將返回字符串的副本,而不是替換文件中的行。 要取代它,最簡單的方法就是讀取所有內容,更改要更改的行,然後再寫出來。否則,您也可以使用linecache模塊再次直接跳到正確的行。 如果可能的話,我建議在程序開始時讀入文件,並在程序運行時將所有信息保存在RAM中,只在最後(或明確要求時)寫入文件,因爲文件訪問速度很慢。

相關問題