2016-04-13 1 views
-1

このコードでは、対応するcropと同じ行にquantityを追加してファイルに書き込みます。私のコードは、単に行の終わりまでにquantityを追加瞬間このコードを最後の値に置き換えて新しい値を挿入するようにこのコードを変更するにはどうすればよいですか?

Tomato 2 4 1 
Lettuce 3 8 7 

これらは、テキストファイルの内容です。私がしたいのは、cropの後に数量を挿入し、行から最後の整数を削除することです。

私はquantityためcropと「9」の入力「レタス」にした場合、それはこのようになるようそれではファイルが変更されるだろう:私はどのように本当にわからないんだけどしかし

Tomato 2 4 1 
Lettuce 9 3 8 

これをする。

私のコード

crop = input('Which crop? ') 
quantity = input('How much? ') 
file = ('cropdata.txt')   

if crop in open(file).read(): 
with open(file, 'r') as file_read: 
     lines = [] 

     for line in file_read: 
      if crop in line: 
       line = str(line.rstrip("\n") + quantity + " " + "\n") 
      lines.append(line) 

with open(file, 'w') as file_rewrite: 
    file_rewrite.writelines(lines) 
else: 
print('Crop not found.') 

答えて

1
line_parts = line.split (" ") #possibly after stripping off final "\n" 

今、あなたはLettuce, 3, 8,7からなる配列line_partsを持っています。

Lettuce, 3, 3, 8になるまで数値入力を1ステップ右にシフトできます。 line_parts[0]を新しいquantityに置き換えてLettuce, 9, 8, 7に変更してください。

line = line_parts[0]+line_parts[1]+line_parts[2]+line_parts[3]とし、それを行に追加して、前と同じように続行します。

0

このようなデータは保存しないでください。データを格納するために構造化されたファイルを使用します。

  • XML
  • JSON

あなたがそれを使用する場合は、この作品はあなたのために困難ではないでしょう。

関連する問題