2013-11-23 3 views
3
a01:01-24-2011:s1 
a03:01-24-2011:s2 
a02:01-24-2011:s2 
a03:02-02-2011:s2 
a03:03-02-2011:s1 
a02:04-19-2011:s2 
a01:05-14-2011:s2 
a02:06-11-2011:s2 
a03:07-12-2011:s1 
a01:08-19-2011:s1 
a03:09-19-2011:s1 
a03:10-19-2011:s2 
a03:11-19-2011:s1 
a03:12-19-2011:s2 

Так что у меня этот список данных в виде текстового файла, where animal name : date : location Так что я должен прочитать этот текстовый файл, чтобы отвечать на вопросы.Использование питона читать текстовые файлы и отвечать на вопросы

Так до сих пор у меня есть

text_file=open("animal data.txt", "r") #open the text file and reads it. 

Я знаю, как читать одну строку, но, поскольку здесь несколько строк им не уверен, как я могу читать каждую строку в формате TXT.

+0

хороший вопрос, линия по показаниям файлов линии действуют довольно странно –

ответ

2

Используйте петлю for.

text_file = open("animal data.txt","r") 
for line in text_file: 
    line = line.split(":") 
    #Code for what you want to do with each element in the line 
text_file.close() 
+0

'line' будет содержать список:' [ «A03», '12-19 -2011 ',' s2 '] ' – achedeuzot

+0

Ввод его в список позволяет легко получить доступ к каждому элементу. – AHuman

+0

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

0

Вы можете использовать with заявление, чтобы открыть файл, в случае open был не удалось.

>>> with open('data.txt', 'r') as f_in: 
>>>  for line in f_in: 
>>>   line = line.strip() # remove all whitespaces at start and end 
>>>   field = line.split(':') 
>>>   # field[0] = animal name 
>>>   # field[1] = date 
>>>   # field[2] = location 
-1

У вас отсутствует закрытие файла. Вам лучше использовать оператор with, чтобы обеспечить закрытие файла.

with open("animal data.txt","r") as file: 
    for line in file: 
     line = line.split(":") 
     # Code for what you want to do with each element in the line 
+0

вы в основном сказали то же самое, что и ответ выше, и что он сделал только незначительную модификацию для первого. –

+0

Когда вы смотрите на историю ответа выше, изначально не было никакой операции с файлом. Итак, почему -1, если это было правильнее? – Razer

1

Поскольку вы знаете, формат этого файла, вы можете сократить его еще больше по сравнению с другими ответами:

with open('animal data.txt', 'r') as f: 
    for line in f: 
     animal_name, date, location = line.strip().split(':') 
     # You now have three variables (animal_name, date, and location) 
     # This loop will happen once for each line of the file 
     # For example, the first time through will have data like: 
     #  animal_name == 'a01' 
     #  date == '01-24-2011' 
     #  location == 's1' 

Или, если вы хотите сохранить базу данных информации, которую вы получите от файл, чтобы ответить на ваши вопросы, вы можете сделать что-то вроде этого:

animal_names, dates, locations = [], [], [] 

with open('animal data.txt', 'r') as f: 
    for line in f: 
     animal_name, date, location = line.strip().split(':') 
     animal_names.append(animal_name) 
     dates.append(date) 
     locations.append(location) 

# Here, you have access to the three lists of data from the file 
# For example: 
#  animal_names[0] == 'a01' 
#  dates[0] == '01-24-2011' 
#  locations[0] == 's1' 
+0

+1 для значимых имен переменных - какая концепция! :) – FMc

+0

вид перехода к новой теме, как обрабатывать вывод данных, но хорошо, тем не менее –

+0

Я думал, что постараюсь быть полезным, так как ОП спросил об интерпретации данных в комментарии к ответу @ AHuman. –

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