使用python写入某些csv列

2024-10-04 11:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个地址列表,用地理信息我可以得到经度和纬度。一切都很好,但是现在我想在同一个csv文件中插入经度和纬度,所以纬度在第8列,经度在第9列。在

AREA, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, ADDRESS7, LATITUDE, LONGITUDE
NORRKÖPING, Fridtunga, 602 28, Norrköping,SE        
NORRKÖPING, Björnatan gata 131, 603 77, Norrköping,SE   

上面是我从中提取信息的csv文件。我要取地址2和地址4,然后得到经纬度

^{pr2}$

最后一部分是我无法理解的部分。我怎么能让它继续在一排排继续?现在它将经度和纬度放在同一行,删除前面的那些。在

现在csv文件看起来像:

NORRKÖPING, Björnatan gata 131, 603 77, Norrköping,SE,58.5888632,16.186094499284, 

但我希望它看起来像:

 NORRKÖPING, Fridtunga, 602 28, Norrköping,SE, 58.5649201, 16.217851        
 NORRKÖPING, Björnatan gata 131, 603 77, Norrköping,SE,58.5888632,16.186094499284, 

Tags: 文件csv列表地址pingse纬度经度
1条回答
网友
1楼 · 发布于 2024-10-04 11:32:33

在添加内容时,不应在适当的位置更改文件。Check this question for that dicussion.但是,您可以用所需的输出创建一个新文件。在

假设你的代码可以工作,试着这样做我重新安排了几行。在

from geopy.geocoders import Nominatim
import csv

geolocator = Nominatim()

with open('test.csv','r') as in_file:
    reader = csv.reader(in_file)
    out_file = open('out.csv', 'w')
    writer = csv.writer(out_file)
    for row in reader:
        adress1 = row[3]
        adress2 = row[5]
        locaiton = geolocator.geocode(adress1 + " " + adress2)
        if locaiton is not None and locaiton.longitude is not None and locaiton.latitude is not None:
            print(adress1 + " " + adress2 + " ", locaiton.latitude, locaiton.longitude)
            row.append(locaiton.latitude) 
            row.append(locaiton.longitude)
            writer.writerow(row)

相关问题 更多 >