首页 > 解决方案 > 如何在csv文件中写入结果?

问题描述

我创建了一个脚本,为每个特定的仪表重新调整路径坐标。但是我无法将结果保存在 CSV 文件中。首先,我只是从 cmd 运行脚本并将其存储在 txt 文件中,然后转换为 CSV 文件,但是当我想在另一个脚本中读取此结果时,这种方法不起作用我有一个错误:

'utf-8' codec can't decode byte 0xf1 in position 42: invalid continuation byte

然后我尝试在脚本中将其写入 CSV 文件,但我收到空的 CSV 文件。如何将结果保存在 CSV 文件中,而不是在 python 中将其作为数据框读取而不会出错?

我的代码如下:

file = 'river_km_true_086_100_reference_trajectory.csv'
df = pd.read_csv(file, sep = ";")

f = open("new_coord.csv","w")
f.write("lon; lat\n")
f.close()

start_value = 0
stop_value = 1392 # Can be changed this value
step = 0.05 # in kilometers

for distance in np.arange(start_value, stop_value, step):
    try:
        x, y = getCoordinatesAt(distance)       
        print("distance, x, y: ", distance, x, y)       
        f.write(str(x) + ";" + str(y) + "\n")       

except:
    print("no value for distance ", distance)

标签: pythoncsv

解决方案


我不确定您在这里尝试做什么,但假设您使用脚本在命令行上获得正确的输出,以下可能对您有用

import csv
file = 'river_km_true_086_100_reference_trajectory.csv'
df = pd.read_csv(file, sep = ";")
start_value = 0
stop_value = 1392 # Can be changed this value
step = 0.05 # in kilometers

with open('new_coord.csv', 'wb') as csvfile:
    mywriter = csv.writer(csvfile)
    mywriter.writerow(["lon","lat"])
    for distance in np.arange(start_value, stop_value, step):
        try:
            x, y = getCoordinatesAt(distance)       
            print("distance, x, y: ", distance, x, y)       
            mywriter.writerow([str(x),str(y)])       

        except:
            print("no value for distance ", distance)


推荐阅读