【发布时间】:2020-01-13 10:30:05
【问题描述】:
我有一个包含随机 x,y,z 坐标的文件。我正在尝试编写一些代码以在 z 值前面插入一个“-”(负数)(因此给我一个负高程)。
问题是,我将文件保存为 .csv,不幸的是,这不会添加任何分隔符,因此数据仅位于每行一个单元格上,由空格分隔:x_y_z。 “csv”文件包含超过 100 万个点,因此在 excel 中编辑它是不可能的。
我尝试了几种方法来做我想做的事,但是当我试图遍历每一行并写出数据时,我摔倒了。任何帮助或指示将不胜感激。
我尝试了两件事。第一种方法可能非常粗糙,但它似乎达到了我想要的效果,虽然它只适用于 1 行。我不知道如何真正遍历每一行。
第二种方法会取第一行,把X、Y、Z分成不同的变量,然后我就迷路了!
#First method:
import csv
inputfile = csv.reader(open ("\\wk.csv", 'r'))
for row in inputfile:
rowstring = str(row)
x1 = rowstring[2:11]
y1 = rowstring[12:22]
z1 = "-" + rowstring[23:29]
xynz = x1 + " " + y1 + " " + z1
#second method:
with open ("\\wk.csv", 'r+') as f:
for l in f:
x2, y2, z2 = l.split()
z3 = "-"+z2
第一种方法会给我只需要一行的结果。['555555.55', '4444444.44', '-333.33']
第二种方法将 Z 分开,我可以在其中添加负数,但在我卡住之后
【问题讨论】:
-
提供来自您的
wk.csv文件的样本数据和所需的结果。此外,您发布的代码的缩进不正确,因此它不起作用。创建minimal reproducible example。