2016-04-28 4 views
0

私は、Schedule.txtというファイル内の行のセットを削除するために使用する機能を持っています。最初は6行を削除して、最初に入力して、削除する時間をユーザに尋ねる。これは6行のうち最初の行である。これは私が持っている限りです。誰かが6行を削除する手助けをすることができたら、答えてください!Pythonを使用してファイル内で選択した行の後に行を削除する

def delete(): 
    train = int(input("Enter the train time that you want to remove: ")) 
    file = open("Schedule.txt", "r") 
    file.read("| Train: "+train) 
+2

https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/ – TheGameiswar

+1

私はそれを取得できませんでした。あなたは何を削除したいですか? "関数"(最初の文章を参照)? 6つのコード行?ファイル内に6行ありますか?ファイル内の一部のテキストのみ?このファイルはどのように見えますか?あなたは何を理解していますか?あなたはより正確でなければなりません。単にあなたを徹底的に助けることはできません。 – vmonteco

+0

SORRY!私は間違って言いました!私は関数を使ってファイル内の行を削除したい! – Robski

答えて

0

これはいかがですか?

import fileinput 
import sys 

def delete(): 

    train = input("Enter the train time that you want to remove: ") 
    train = train.strip() 

    # REMEMBER WHICH LINE THE TRAIN WAS FOUND ON 
    train_found_on = None 

    # OPEN THE FILE FOR IN-PLACE WRITING 
    for i, line in enumerate(fileinput.input('schedule.txt', inplace=1)): 

     # NEVER WRITE OUT THE LINE WHERE THE TRAIN WAS MATCHED 
     if 'Time:' in line and train in line: 
      train_found_on = i 
      continue 

     # NOR THE LINES AFTER IN THAT BLOCK 
     if train_found_on and i < (train_found_on + 7): 
      continue 

     # BUT WRITE OUT THE OTHERS 
     sys.stdout.write(line) 

も、この記事を参照してください:How do I modify a text file in Python?

+0

完璧に動作します!ありがとうございました! – Robski

関連する問題