次の問題があります。ファイルx、y、zを次のように読んでいます:
481492.93 6244326.24 26.56
481493.03 6244325.60 25.06
481493.17 6244324.68 22.89
481493.50 6244322.52 17.80
481492.84 6244327.05 27.84
481492.90 6244326.66 26.90
481492.86 6244327.16 27.45
481493.48 6244323.08 17.79
481492.80 6244327.80 28.30
481492.94 6244326.84 26.04
..........................
同じファイルを読み書きしたい(元のファイルが10GB以上あるのでバックアップファイルを作成せずに)
481492.93 6244326.24 26.56 (375, 2902)
481493.03 6244325.60 25.06 (376, 2902)
481493.17 6244324.68 22.89 (377, 2902)
481493.50 6244322.52 17.80 (379, 2903)
481492.84 6244327.05 27.84 (375, 2902)
481492.90 6244326.66 26.90 (375, 2902)
481492.86 6244327.16 27.45 (374, 2902)
481493.48 6244323.08 17.79 (379, 2903)
481492.80 6244327.80 28.30 (374, 2902)
481492.94 6244326.84 26.04 (375, 2902)
..........................
私は次のアプローチを書きました
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)
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),origin[0],origin[1],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
元のファイルとの接続の問題だと思います
エラーが表示されます
>>> x,y,z = line.split()
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ValueError: too many values to unpack
どこline
がおかしい
'481499.82 6244470.31 29.23 (231, 2909)\n'
それ以外の '481499.82 6244470.31 29.23\n'
新しいファイルから実行した後にこの印刷物を取得しprint line
た後に使用するfor line in open(file_temp):
481499.98 6244494.02 34.14
481499.98 6244494.02 34.14 (208, 2909)
481499.96 6244471.05 33.39
481499.96 6244471.05 33.39 (231, 2909)
481499.95 6244471.27 33.46
481499.95 6244471.27 33.46 (230, 2909)
481499.98 6244473.84 32.72
481499.98 6244473.84 32.72 (228, 2909)
481499.98 6244474.07 32.70
481499.98 6244474.07 32.70 (228, 2909)
481499.97 6244474.28 32.93
481499.97 6244474.28 32.93 (227, 2909)
481499.88 6244474.40 34.35
481499.88 6244474.40 34.35 (227, 2909)