【发布时间】:2017-06-17 17:40:56
【问题描述】:
我正在尝试遍历文本文件并应用一些逻辑,但我无法遍历文本文件。所以目前我有一个结构如下的文本文件:
--- section1 ---
"a","b","c"
"d","e","f"
--- section2 ---
"1","2","3"
"4","5","6"
--- section3 ---
"12","12","12"
"11","11","11"
我正在尝试过滤掉包含“---”的第一行并将下面的行转换为 json,直到下一个“---”行出现在文本文档中。
但是我得到了这个错误“ fields1 = next(file).split(',') StopIteration
with open(fileName,'r') as file:
for line in file:
if line.startswith('-') and 'section1' in line:
while '---' not in next(file):
fields1 = next(file).split(',')
for x in range(0,len(fields1)):
testarr.append({
config.get('test','test'): fields1[x]
})
with open(test_dir,'w') as test_file:
json.dump(testarr, test_file)
知道为什么我的代码不工作或如何解决错误吗?
【问题讨论】:
-
试着写成两个连续的循环,而不是嵌套它们。 Loop1:跳过所有行直到
--- section1...。 Loop2:转储所有行,直到遇到另一个---。 -
鉴于过去类似标题的经验,我预计这是一个需要关闭的垃圾问题。相反,找到了一个措辞明确的问题,基本上所有相关信息都存在。许多荣誉OP。
-
忽略我原来的(现已删除)评论。很久没有看到
else到while循环了。 -
break不应该在else中。内部with肯定不应该在while循环中。 -
请不要直接编辑问题中的代码。
标签: python file loops while-loop