1

x、y、z 値を持つファイルがあります。各行に新しい値IDを開いて追加し、同じファイルを再度保存するエレガントな方法を見つけたいと思います。

def get_point_grid_id(x,y,x_min,y_max,x_dist,y_dist):
    col = int((x - x_min)/x_dist)
    row = int((y_max - y)/y_dist)
    return (row, col)

1 1 10
2 2 10
3 3 10

IDは

get_point_grid_id(1,1,0,10,1,1)
(9, 1)
get_point_grid_id(2,2,0,10,1,1)
(8, 2)
get_point_grid_id(3,3,0,10,1,1)
(7, 3)

新しいファイルは

1 1 10 (9, 1)
2 2 10 (8, 2)
3 3 10 (7, 3)

私はStackoverflowでいくつかのアプローチを読んでおり、いくつかのアプローチをテストしました。正直に言って、新しいファイルを保存しようとして失敗しました。

私は次の解決策を試しました

with open(file_temp, "r+") as f:
    for line in open(file_temp):
        x,y,z = line.split()
        id = get_point_grid_id(float(x),float(y),0,10,1,1)
        element = [x,y,z,id]
        newelement = " ".join([str(e) for e in element])+ "\n"
        f.write(newelement) 

しかし、私はこのエラーメッセージを受け取ります

Traceback (most recent call last):
  File "<editor selection>", line 3, in <module>
ValueError: too many values to unpack

newelement (実際のデータ) は

'481499.55 6244324.75 19.15 (377, 2909)\n' 
4

1 に答える 1