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

Anc*_*wal 7 python coordinates

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

1.2378 4.5645

6.789 9.01234

123.43434 -121.0212
Run Code Online (Sandbox Code Playgroud)

... 等等.

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

x[0] = 1.2378

y[0] = 4.5645

x[1] = 6.789

y[1] = 9.01234
Run Code Online (Sandbox Code Playgroud)

... 等等.

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

Tha*_*yne 12

一种方法:

x,y = [], []
for l in f:
    row = l.split()
    x.append(row[0])
    y.append(row[1])
Run Code Online (Sandbox Code Playgroud)

其中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])
Run Code Online (Sandbox Code Playgroud)

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

x,y = zip(*[l.split() for l in f])
Run Code Online (Sandbox Code Playgroud)

其中f是文件对象,或

import csv
x,y = zip(*csv.reader(f,delimeter=' '))
Run Code Online (Sandbox Code Playgroud)

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