2016-12-09 1 views
-3

I/Oファイルに生徒の名前と成績を記録するプログラムを作成しようとしています。この問題は、ユーザーがremove関数でファイルから名前を削除するときに発生します。 xとテキストので、(xは、ユーザによって与えられた名前である)I/Oファイルの一部を削除するPython

def remove(x): 
    with open ("grades.txt", "rt") as f: 
      text = f.read() 

    if x in text: 

      new = del text[x] 
      with open ("grades.txt", "wt") as f: 
        text = f.write(new) 

    else: 
      print("name not in the file") 
+1

あなたの質問は何ですか? – MattDMo

+0

どのように保管していますか?具体的にする。 – MYGz

+0

del text [x]はどのくらい正確に動作するのですか? 'x'は文字列です。文字列で文字列をインデックス化することはできません。 –

答えて

0

を見て:)

を取ってくれてありがとうあなたが最初のテキストで、xの開始インデックスを検索したい文字列です。

if x in text: 
    start_index = text.index(x) 
    end_index = start_index + len(x) 
    # so text[start_index:end_index] is x 

    # Now to remove it: 
    new = text[:start_index] + text[end_index:] 

編集: あなたが名前を保存する方法に応じて、あなたにもカンマや改行を削除する必要があるかもしれません。

+0

助けてくれてありがとう! –

関連する問題