2016-04-28 117 views
0

我有一個函數,我想用它來刪除名爲Schedule.txt的文件中的一組行。我希望它總共刪除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

我沒有得到它。你想刪除什麼? 「功能」(比較第一句話)?六個代碼行?文件中有六行?只有一些文件在文件中?這個文件是怎麼樣的?你不明白什麼?你應該更精確,我們根本無法幫助你過分。 – 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