вычесть два столбца в файле с вкладками (python) - PullRequest
0 голосов
/ 25 августа 2011

Я возился с некоторыми координатами, которые хочу проверить по отношению друг к другу.

У меня есть поле с вкладками, которое состоит из 6 столбцов. Это последние 4 столбца, которые я хочу вычесть, и получить результат в два столбца после последнего столбца координат. Также с вкладками.

Я хочу сделать это для довольно больших файлов, это возможно? И если нет, как я могу сделать это с довольно маленькими файлами? Я кое-что прочитал, и везде появляется модуль csv.

    337905.44   5269907.69  337905.38   5269907.78
    337917.95   5269907.55  337917.93   5269907.62
    337930.46   5269907.34  337930.48   5269907.46
    337942.97   5269907.13  337942.84   5269907.06

Вот как далеко я продвинулась, когда сдалась;

<code>
    import csv
    with open('coor.txt', newline='') as f:
        reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)

Подводя итог, все, что я хочу сделать, это вычесть первый и третий столбцы, а затем вычесть второй и четвертый столбцы и получить разницу в два столбца после последнего столбца координат.

Заранее спасибо!

1 Ответ

3 голосов
/ 25 августа 2011

Как то так?

#!/usr/bin/env python

with open('input') as fd:
    for line in fd:
        columns=line.split()
        columns=map(float,columns)
        print "%s | \t %s \t %s" % (line.strip(), columns[0] - columns[2],
                                    columns[1] - columns[3])

Выходы

337905.44   5269907.69  337905.38   5269907.78 |     0.0599999999977     -0.089999999851
337917.95   5269907.55  337917.93   5269907.62 |     0.0200000000186     -0.070000000298
337930.46   5269907.34  337930.48   5269907.46 |     -0.0199999999604    -0.120000000112
337942.97   5269907.13  337942.84   5269907.06 |     0.129999999946      0.070000000298

Использование csv-module:

import csv

with open('input', 'rb') as fd:
    reader=csv.reader(fd,delimiter='\t')
    for row in reader:
        #your calculations
        print row
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...