簡體   English   中英

減去制表符文件中的兩列(python)

[英]subtract two columns in a tab'ed file (python)

我一直在修改一些我想互相檢查的坐標。

我有一個制表符字段,由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

當我放棄時,這就是我所走的路。


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

總而言之,我要做的就是減去第一和第三列,減去第二和第四列,並得到最后一個坐標列之后兩列的差。

提前致謝!

像這樣嗎

#!/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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM