2017-08-13 9 views
1

nmapスクリプトを手助けし、出力をcsvファイルに出力する必要があります。 私はスクリプトを実行し、print(nm.csv())でそれを終えるとき、私は私が何をしたい最初の場所で表示され、次の結果得た:nmapとprint(nm.csv())は、csv.fileに出力するのに役立ちます。

host;hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe 
82.214.228.176;176.228.214.82.in-addr.arpa;PTR;tcp;21;ftp;open;;;syn-ack;;3; 
82.214.228.176;176.228.214.82.in-addr.arpa;PTR;tcp;22;ssh;open;;;syn-ack;;3; 
82.214.228.176;176.228.214.82.in-addr.arpa;PTR;tcp;53;domain;open;;;syn-ack;;3; 
82.214.228.176;176.228.214.82.in-addr.arpa;PTR;tcp;80;http;open;;;syn-ack;;3; 

をしかし、私の質問はこれが同じでcsvファイルを作成するために、リダイレクトまたは取得する方法です私がスクリプトを実行するディレクトリか、おそらくパス内のディレクトリ。 ありがとうございます!

答えて

1

あなたはこの1

のような関数を宣言できます:あなたはpython2でのpython3から印刷()動作を取得するためにprint_functionを使用することができます

def save_csv_data(nm_csv, path='.'): 
    with open(path + '/output.csv', 'w') as output: 
     output.write(nm_csv) 

引数を渡すことで、anothe

if (len(sys.argv) > 1 and sys.argv[1]): 
    save_csv_data(nm.csv(), path=sys.argv[1]) 
else: 
    save_csv_data(nm.csv()) 

編集:はまた、あなたが引数を使用することを決定した場合、私はまた、あなたをお勧めしimport sys

に覚えて、ファイルを保存するか、そうでない場合は、スクリプトと同じディレクトリを使用するには、rパスargparseのようなモジュールを使用してください。

+0

マーティンありがとう! –

+0

@IvanMadolevは動作しましたか? –

+0

私はそれを得た! :)マーティンありがとう! –

1
print (nm.csv(),file=open('a.csv','w')) 

編集

from __future__ import print_function 
+0

ありがとうスマート! –

+0

ちょっとスマートに、私は構文エラーを取得しています: "test2.pyを" ファイル、ライン22 プリント(nm.csv()、ファイル=オープン( 'a.csv'、 'W')) ^ にSyntaxError:無効な構文 –

関連する問題