繁体   English   中英

Python:如何将包含行列格式坐标的文本文件读入xy坐标数组?

[英]Python: How to read a text file containing co-ordinates in row-column format into x-y co-ordinate arrays?

我有一个文本文件,其中包含以下列格式存储的数字:

1.2378 4.5645

6.789 9.01234

123.43434 -121.0212

... 等等。

我希望将这些值读入两个数组,一个用于x坐标,另一个用于y坐标。 喜欢,所以

x[0] = 1.2378

y[0] = 4.5645

x[1] = 6.789

y[1] = 9.01234

... 等等。

我该如何阅读文本文件和存储值?

一种方法:

x,y = [], []
for l in f:
    row = l.split()
    x.append(row[0])
    y.append(row[1])

其中f是文件对象(例如来自open())

您也可以使用csv库

import csv
with open('filename','r') as f:
    reader = csv.reader(f,delimeter=' ')
    for row in reader:
        x.append(row[0])
        y.append(row[1])

你也可以使用zip来使它更简洁(虽然可能不太可读:

x,y = zip(*[l.split() for l in f])

其中f是文件对象,或

import csv
x,y = zip(*csv.reader(f,delimeter=' '))

再次,其中f是文件对象。 并不是说最后两个方法会将整个文件加载到内存中(尽管如果你使用的是python 3,你可以使用生成器表达式并避免这种情况)。

每行读取一次,然后使用split

with open('f.txt') as f:
    for l in f:
        x, y = l.split()
        #do something meaningful with x and y

或者,如果您不介意将整个列表存储到计算机的内存中:

with open('f.txt') as f:
    coordinates = [(c for c in l.split()) for l in  f]

如果要将x s和y s存储在单独的变量中:

xes = []
ys = []
with open('f.txt') as f:
     for line in f:
         x, y = l.split()
         xes.append(x)
         ys.append(y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM