2017-08-13 97 views
1

我需要你帮助nmap脚本并将输出打印到csv文件。 当我运行该脚本,并与print(nm.csv())完成它,我得到了下面的结果显示这是我想要第一名:nmap和打印(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

你可以声明函数像这样的

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

然后通过传递一个参数,您可以指定其他[R路径保存文件,或以其它方式使用相同的目录脚本:

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

我也建议你,如果你决定使用参数,使用像argparse这样的模块。

+0

谢谢Martin! –

+0

@IvanMadolev是否有效? –

+0

我懂了! :)非常感谢你马丁! –

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

编辑

可以使用print_function从python3得到python2打印()行为:

from __future__ import print_function 
+0

谢谢智能! –

+0

嘿智能,我得到语法错误:文件“test2.py”,第22行 print(nm.csv(),file = open('a.csv','w')) ^ SyntaxError:无效语法 –