Python читает количество строк - PullRequest
0 голосов
/ 16 мая 2019

Я просто хотел запросить лучший способ прочитать строки текстового файла обратно в объект dict или class.

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

По сути данные выглядят так (- это мои комментарии):

Default_scene --this is the scene name 
0 -- start frame
10 --end frame
--this could be a filepath but is blank
2 --number of records in class object can vary but 2 here
Dave01: --record name 
Dave01: -- namespace
V:/assets/test.fbx --filepath for record
1 -- number of export sets (can vary)
Test:Default_scene_Dave01 0-10 --export set
Test01: --record name
Test01:--namespace
C:/test2.fbx --filepath
0--number of export sets

Например: если бы я хотел прочитать данные записей обратно в класс объектов, как бы я сказал сценарию чтения строк прочитать следующие 1 или даже 2 строки в зависимости от того, сколько может быть наборов экспорта?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Сначала вы читаете строку, которая сообщает вам, сколько существует наборов экспорта, , а затем , чтобы прочитать еще много строк для обработки. Код, основанный на ваших комментариях, может выглядеть как

with open("data.txt") as f:
    scene_name = next(f).strip()
    start_frame = int(next(f))
    end_frame = int(next(f))
    num_recs = int(next(f))
    for _ in range(num_recs):
        rec_name = next(f).strip()
        namespace = next(f).strip()
        fpath = next(f).strip()
        num_export_sets = int(next(f))
        export_sets = [next(f).strip() for _ in range(num_export_sets)]
        # ...
1 голос
/ 16 мая 2019

Может быть, что-то подобное может сработать, тогда у вас будет все в списке и вы сможете с ним работать:

lines = []
with open(filepath) as fp: 
   line = fp.readline()
   lines.append(line)
   while line:
       line = fp.readline()
       lines.append(line)
...