2016-04-28 70 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