2013-12-13 4 views
1

Im пытается создать программу, которая только читает/печатает определенную строку в python. До сих пор я получил это:Как печатать только одну строку из txt-файла? (python)

import random 
import time 
a = open("settings.txt", "r") 
b = open("settings.txt", "a") 
adding = input("Enter Name: ") 
with open("settings.txt", "a") as f: 
    f.write("\n{}".format(adding)) 
data = [line.rstrip() for line in a.readlines()] 
print(", ".join(data)) 
time.sleep(10) 

В моем settings.txt:

Blah 1 
Blah 2 
Blah 3 

Как только получить программу для печати (например) Ла 1 и ничего из этого текстового файла?

+1

Как насчет использования 'a.readline()'? – lurker

+0

Всегда только первая строка или случайная строка (именно поэтому вы производите импорт)? – Barmar

+0

строка 'data =' помещает все строки в список ... так что просто 'print (data [0])'? – TehTris

ответ

2

Если это только первая линия, вы могли бы сделать:

for line in open('afile.txt'): 
    print line 
    break 

Если это случайная строка, что вы хотите, вы можете сделать:

print random.choice([f for f in open('afile.txt')]) 
+0

Большое спасибо! Это будет полезно (случайным) в более поздней программе! :) – PythonBeginner

+0

Если файл afile.txt достаточно велик, вам нужно беспокоиться об установке его в память, вы не должны делать '[f for f in open ('afile.txt ')] '(что эквивалентно' open (' afile.txt '). readlines() '). См. Http://stackoverflow.com/questions/448005/whats-an-easy-way-to-read-random-line-from-a-file-in-unix-command-line – IceArdor

2

Следующая открывает файл для вас, печатает первую строку, а затем закрывает ее:

with open("settings.txt", "r") as f: 
    print f.readline() 
Смежные вопросы