2017-12-14 17 views
0

pythonの特定の行と列を削除する簡単な方法があるのだろうかと思います。これが些細な質問であればお詫び申し上げます。pythonを使って.datファイルの行と列を削除する

私は現在、特定のコマンドの出力を.datファイルに保存する一連のLinuxコマンド(特にChiao Chandra望遠鏡解析コマンド)を自動化するスクリプトを作成しています。私が欲しい

-------------------------------------------------------------------------------- 
ROW CELL RCENTRE    RHALFWIDTH   AREA     COUNTS    SUR_BRI    

    1  1   1.016260150   1.016260150  12.9783552105     0     0 
    2  1   3.048780450   1.016260150  38.9350656315     1.0  0.02568378873336 
    3  1   5.081300750   1.016260150  64.8917760526     1.0  0.01541027324001 
    4  1   7.113821050   1.016260150  90.8484864736     1.0  0.01100733802858 
    5  1   9.146341350   1.016260150  116.8051968946     0     0 
    6  1 

------------------------------------- 
------------------------------------- 

データテーブル用ブロックヒストグラム:現時点での出力は、いくつかの行と、私はそこにしたくない列...

EGデータが現在のように見えるが含まれています"テーブルブロックヒストグラムのデータ"とダッシュを組み込んだ最初の数行を削除し、 "ROW"と "CELL"で始まる最初の2つの列も削除しますか?

事前に感謝

答えて

0

あなたのセパレータが集計されたり、最後に列の間の正確な同じ距離を必要としない、とあなたは(あなたの例のように)面白いの行には番号が付いていますと仮定すると仮定すると

def cutFile(fname, firstWantedColumn): 
    """Keep wanted lines and colums: detect lines beginning with number and keep input columns""" 
    f=open(fname, "r") 
    lf = f.readlines() 
    f.close() 

    txtOut = "" 
    for l in lf: 
     if l[0].isdigit(): #detect if first char is a number 
      txtOut += "\t".join(l.split()[firstWantedColumn:]) + "\n" 
    g = open(".".join(fname.split(".")[:-1]) + "_cutted" + fname.split(".")[-1]) 
    g.write(txtOut) 
    g.close() 

cutFile("myFile.dat", 2) 

編集:そのような何かを書くことができ、これは多分あなたは、高度なとonelinerソリューション話していた、ブルートフォースソリューションですが、私はこれが存在するSURていませんよ。

関連する問題