2017-01-08 2 views
0

У меня есть файл Python с этой структуры:Сомнения чтения файлов

Строка, я хочу, чтобы извлечь плюс некоторые другие сведения, такие как целые числа

Например: **Room** 61201 1 png

Есть куча линии после модели. И чтобы извлечь то, что я хотел бы, я подумал, что попросить Python прочитать символы WHILE, характер которых отличается от SPACE. Когда символ - это пробел, перейдите к следующей строке и продолжайте делать это.

Однако я не знаю, как реализовать это ... не могли бы вы помочь мне?

[ОБНОВЛЕНО] Я хотел бы хранить каждую информацию (номер, автомобиль, вентилятор ...) в списке.

ответ

1

Вы можете прочитать через файл построчно (и выполнить некоторые действия для каждой строки), как это:

with open('filename') as file: 
    for line in file: 
     #do something with line here 

Затем используйте string.split(), чтобы сформировать массив, добавив новый элемент, когда он читает пробел. Итак:

array = [] 
with open('filename') as file: 
    for line in file: 
     array.append(line.split()) 

#Result: [['**Room**', '61201', '1', 'png']] 

И вы можете манипулировать информацией в массиве, как бы вы ни хотели.

Для того, чтобы получить доступ к конкретной информации от линии в новом массиве, запустить простой цикл, как так:

item1 = [] 
item2 = [] 
item3 = [] 
item4 = [] 

for dataset in array: 
    item1.append(dataset[0]) 
    item2.append(dataset[1]) 
    item3.append(dataset[2]) 
    item4.append(dataset[3]) 

Чем больше вещий способ будет использовать словарь массивов, как это:

dataDict = {0: [], 1: [], 2: [], 3: []} 

for dataset in array: 
    for i in range(len(dataset)): 
     dataDict[i].append(dataset[i]) 

Пока данные находятся в том же порядке, это добавит каждый n-й элемент в свой собственный массив.

Надеюсь, это поможет!

+0

Я * думаю * данные в файле, потому что он хочет читать его по строкам («Когда символ пробел, перейдите к следующей строке и продолжайте делать это»). Также этот вопрос называется «Сомнения в чтении файлов» –

+0

Ах, ладно. Я добавлю к моему ответу, так что, по крайней мере, это не выглядит глупо: P, но я продолжу ваше голосование. Спасибо – illiteratecoder

+0

ха-ха :) без проблем –

1

Ваш вопрос немного запутанный, но я думаю, что https://docs.python.org/3/ будет вам полезна.

Для того, чтобы читать файл, вы можете использовать open("filename", "r"). Для каждой строки в файле вы можете использовать метод .split(" ") для создания списка. В конечном счете это выглядело бы примерно так:

data = [] 
file = open("filename", "r") 
for line in file: 
    data.append(line.split(" ")) 
print(data) 
f.close() 

Данные переменных были бы списком списков.