如何按指定格式读取txt文件中的文件名与对应3D坐标序列
你可以通过拆分每行内容后解析坐标字符串的方式获取完整数据,推荐使用ast.literal_eval安全解析符合Python格式的列表结构,调整后的代码如下:
首先导入必要模块:
import os import ast
完整处理逻辑:
coortxt = os.path.join(coordir, 'coor_downsampled.txt') with open(coortxt) as f: content = f.readlines() # 新增空行过滤逻辑,避免空行报错 content = [x.strip() for x in content if x.strip()] for item in content: # 仅拆分第一个空格,分离文件名和坐标字符串,避免列表内空格干扰 file_name, coor_str = item.split(' ', 1) # 把坐标字符串解析为Python嵌套列表 coor_list = ast.literal_eval(coor_str) # 下方写你的逐行处理逻辑即可,示例打印验证 print("文件名:", file_name) print("坐标序列:", coor_list) # 按索引取坐标示例:取第2个坐标的z值为 coor_list[1][2]
相关说明:
- 用
split(' ', 1)指定仅拆分第一个空格,避免坐标列表内部的空格导致拆分结果出错 ast.literal_eval只会解析Python基础字面量结构(列表、字典、数字、字符串等),不会执行任意代码,比直接使用eval更安全- 解析后的
coor_list结构和文件内的坐标结构完全一致,可直接按顺序通过索引读取对应坐标
内容的提问来源于stack exchange,提问作者banikr
相关产品推荐
相关产品推荐

