首页 > 解决方案 > 从文件中读取数组

问题描述

我需要从 2 个文件(.txt 或 .xls)中读取点作为数组,并将它们组合起来运行一个算法,将这些点拟合成一个椭圆。

从 5 列的第一个文件中,我必须读取 5 个元素的数组 X:

3586,02124  2391,50342  837,45227   -837,29681  -2385,9751
3587,69238  2387,48218  836,604     -840,75067  -2390,17529
3588,44531  2387,44556  836,00555   -840,79022  -2389,77612
3588,08203  2388,25439  836,26544   -840,17017  -2389,07544
3587,66553  2389,05566  836,53046   -839,53912  -2388,40405
3587,26636  2389,86255  836,79382   -838,91455  -2387,7168
........

从 5 列的第二个文件中,我必须读取 5 个元素的数组 Y:

843,19598   2396,10278  3579,1377   4210,15674  4209,37549
841,9397    2397,21948  3573,11963  4205,89209  4226,73926
842,01642   2397,72266  3573,06494  4202,88379  4226,93799
842,22083   2397,47974  3574,27515  4204,19043  4223,8208
842,42065   2397,20142  3575,47437  4205,52246  4220,64795
......

然后我必须创建变量 pot:

pot = (x, y) 

这是计算的输入数据。第一个文件(x(1))的第一行对应于第二个文件的第一行(y(1))。该算法从这五个点中获取 x 和 y (3586,02124;843,19598), (2391,50342; 2396,10278),....并拟合椭圆。所以对于每组点(或线)我都会有一个椭圆。

总而言之,我正在寻找一个代码来读取这些点,以及哪个循环适合为每组点运行算法。

有任何想法吗?

标签: pythonarraysfile

解决方案


不完全明白你的意思,但是:

array = []
with open('test.txt', 'r') as file:
    for line in file:
        print(line.strip('\n').split('  '))

给我这个输出:

['3586,02124', '2391,50342', '837,45227', ' -837,29681', '-2385,9751']
['3587,69238', '2387,48218', '836,604', '', ' -840,75067', '-2390,17529']
['3588,44531', '2387,44556', '836,00555', ' -840,79022', '-2389,77612']
['3588,08203', '2388,25439', '836,26544', ' -840,17017', '-2389,07544']
['3587,66553', '2389,05566', '836,53046', ' -839,53912', '-2388,40405']
['3587,26636', '2389,86255', '836,79382', ' -838,91455', '-2387,7168']

我想你可以更进一步。您可能想再做一条,但那是您的文件在第 4 列之前的间距不一致


推荐阅读