[英]Importing coordinates from CSV - Python
我是 python 的新手,我正在嘗試將一組 x,y 坐標從 csv 導入 python。
目前我的腳本如下所示:
with open ('filename.csv') as csvfile:
data = list(tuple(rec) for rec in csv.reader(csvfile, delimiter= ","))
這為我提供了如下的坐標列表(打印時):
[('1', '2'), ('5', '6'), ('4', '4'), ('8', '9')]
但是我需要輸出如下所示,以便它可以成功傳遞到多邊形測試中的一個點。
[(1, 2), (5, 6), (4, 4), (8, 9)]
任何人都可以推薦我如何更改腳本以實現上述結果?
有很多方法可以做到,但我認為這是最短的(當使用 csv 模塊時,只有一個open
可能會更短):
with open('filename.csv') as csvfile:
data = [(int(x), int(y)) for x, y in csv.reader(csvfile, delimiter= ',')]
import csv
with open('coords.csv', 'rb') as csvfile:
data = [tuple(map(int, row)) for row in csv.reader(csvfile)]
print data
您也可以使用生成器函數逐步執行此操作並避免創建龐大的列表(除非這是您的目標):
def get_data(filename):
with open(filename, 'rb') as csvfile:
for x, y in csv.reader(csvfile):
yield int(x), int(y)
print list(get_data('coords.csv'))
無論哪種方式,這將是輸出:
[(1, 2), (5, 6), (4, 4), (8, 9)]
試試這個:
[(int(x), int(y)) for x, y in l]
我怎樣才能使每個坐標都像這樣排成一行:1.(1,2)2.(3,4)3.(4,5)我希望它們全部獨立,因此可以迭代公式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.