python 从文件构建多层嵌套数组,我希望在读到】的时候将前面的数组弹出,进入上一层数组开始继续写入,该怎么写代码,假设文件是每个字符一行
时间: 2024-12-24 08:40:51 浏览: 11
在Python中,你可以使用`readline()`函数逐行读取文件,并通过判断特定字符(如`】`)来处理数据的嵌套结构。这里是一个简单的示例,它会创建一个列表推导式来构建多层嵌套数组:
```python
def build_nested_array(file_path):
nested_list = []
parent_stack = [nested_list] # 存储当前层级的栈
with open(file_path, 'r') as file:
line = file.readline()
while line:
if line.strip() == "]":
parent_stack.pop() # 当遇到】时,移除上一级
else:
item = int(line.strip()) # 假设每行都是整数
parent_stack[-1].append(item) # 否则添加到当前层级
line = file.readline()
return nested_list
# 使用示例
file_content = "1\n[2, 3]\n4\n]5]]\n6"
result = build_nested_array(StringIO.StringIO(file_content))
print(result)
阅读全文