Python阅读行数
Python reading number of lines
我只是想查询将文本文件的行读回字典或 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
例如:如果我想将记录数据读回对象 class,我将如何告诉读取行脚本读取接下来的 1 行甚至 2 行,具体取决于那里有多少导出集可能是?
非常感谢!
也许像这样的东西可以工作,然后你会把所有东西都放在一个列表中并且可以使用它:
lines = []
with open(filepath) as fp:
line = fp.readline()
lines.append(line)
while line:
line = fp.readline()
lines.append(line)
您首先阅读了告诉您有多少导出集的行,然后阅读了更多要处理的行。基于您的评论的代码可能看起来像
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)]
# ...
我只是想查询将文本文件的行读回字典或 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
例如:如果我想将记录数据读回对象 class,我将如何告诉读取行脚本读取接下来的 1 行甚至 2 行,具体取决于那里有多少导出集可能是?
非常感谢!
也许像这样的东西可以工作,然后你会把所有东西都放在一个列表中并且可以使用它:
lines = []
with open(filepath) as fp:
line = fp.readline()
lines.append(line)
while line:
line = fp.readline()
lines.append(line)
您首先阅读了告诉您有多少导出集的行,然后阅读了更多要处理的行。基于您的评论的代码可能看起来像
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)]
# ...