我有一个带有x,y,z值的文件。我希望找到一种优雅的方式打开并为每行添加一个新的值,并再次保存相同的文件。python读取文件,为每行保存一个新列保存同一个文件
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)
我在#1几个办法读,我测试的几种方法。我诚实地说,我已经尝试过,但未能保存新文件。
我曾试图followig解决方案
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'
写入一个单独的文件,然后重新命名回来! – 2013-02-22 17:38:27
是的解决方案,但文件已经很大(超过10 GB) – 2013-02-22 17:40:10
块和切片! – 2013-02-22 17:56:06