2014-10-24 4 views
-2

Это полный образец для кода, который я нуждался в я редактировал полный пост с образцами текстовых файлов входы и выходыPython Скопируйте указанные строки из текстового файла

Текстовый файл: -

Mohammed 
Ahmed 
Mansour 
Sami 
Sameer 
Ukhlof 
Asfar 
Virus 
Ameer 
AbuAlameer 
Ismail 
Belal 
Heba 
Mama 
Papa 

Пример ввода: -

Enter a name : Ukhlof 
Enter How much names you want to copy before that name : 10 

Выход:

From Up :- 
Mohammed 
Ahmed 
Mansour 
Sami 
Sameer 
Ukhlof 

From Down :- 
Belal 
Heba 
Mama 
Papa 

Ваш выход Код: -

From up: 
Mohammed 
Ahmed 
Mansour 
Sami 
Sameer 
From Down: 
Papa 
+1

Пожалуйста, отредактируйте образец ввода и ожидаемый результат в своем сообщении – inspectorG4dget

+0

Привет, я добавил образец, этот пример, конечно, если он больше, чем переменная x, если меньше будет отображаться только результаты up –

+0

@ inspectorG4dget У меня есть добавил образец, вы поняли идею? –

ответ

1
import collections 

def get(infilepath, name, n): 
    d = collections.deque(maxlen=n) 
    with open(infilepath) as infile: 
     line = infile.readline() 
     lines = 1 
     while line: 
      word = line.strip() 
      if word == name: 
       print("From up:") 
       for item in d: 
        print(item) 
       print(word) 
       break 
      d.append(word) 
      line = infile.readline() 
      lines += 1 
     print("From Down:") 

     if n-lines > 0: 
      n -= lines 
      d = collections.deque(maxlen=n) 
      while word: 
       d.append(word) 
       word = infile.readline().strip() 
       if not word: 
        break 
      for word in d: 
       print(word) 

Использование:

def main(): 
    name = input("Enter a name: ") 
    n = int(input("How many lines? ")) 
    infilepath = 'blah' 
    get(infilepath, name, n) 

входного файла:

Mohammed 
Ahmed 
Mansour 
Sami 
Sameer 
Ukhlof 
Asfar 
Virus 
Ameer 
AbuAlameer 
Ismail 
Belal 
Heba 
Mama 
Papa 

Выход:

In [184]: main() 
Enter a name: Ukhlof 
How many lines? 10 
From up: 
Mohammed 
Ahmed 
Mansour 
Sami 
Sameer 
Ukhlof 
From Down: 
Belal 
Heba 
Mama 
Papa 
+0

Я создал цикл и использовал ваш код внутри него, первый процесс был идеальным, но при переходе к следующему целому в цикле список из Dow уменьшается на количество строк из списка вверх для каждого момента начала цикла ? –

Смежные вопросы