Python如何从文件中读取(x,y)坐标点并转换为元组列表
解决方案
问题原因
你之前的代码仅将文件内容按行读取为字符串存入列表,没有处理多余的括号、末尾逗号,也没有将坐标字符串转换为数值类型的元组,因此得到的是字符串列表而非预期的坐标元组列表。
实现代码
使用以下代码即可直接得到存储数值坐标的pts列表:
pts = [] # 用with上下文管理器打开文件,会自动关闭资源,更安全 with open("myfile.txt", "r", encoding="utf-8") as f: for line in f: # 逐行处理:去掉首尾空白、删除末尾逗号、去掉左右括号 line_content = line.strip().rstrip(',').strip('()') # 按逗号分割坐标,去除空白后转为float类型,组装为元组加入列表 x, y = map(float, [i.strip() for i in line_content.split(',')]) pts.append((x, y))
执行后pts就是你需要的坐标元组列表,可直接传入后续程序使用。
格式化打印(可选)
如果你需要在控制台输出你示例中的展示格式,可以额外添加这段代码:
print("pts = [") for x, y in pts: # 格式化输出对齐,和你示例的格式保持一致 print(f"({x:<9} , {y}),") print("]")
内容的提问来源于stack exchange,提问作者PAV
相关产品推荐
相关产品推荐

