nmap 和 print(nm.csv()) 帮助打印到 csv.file

nmap and print(nm.csv()) help needed to print out to csv.file

我需要你帮助处理 nmap 脚本并将输出打印到 csv 文件。 当我 运行 脚本并用 print(nm.csv()) 完成它时,我得到了以下显示的结果,这是我首先想要的:

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 文件。 提前致谢!

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

已编辑:

您可以使用 print_function 从 python2 中的 python3 获取 print() 行为:

from __future__ import print_function

你可以像这样声明一个函数

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

然后通过传递参数,您可以指定另一个路径来保存文件,或者使用与脚本相同的目录:

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.

这样的模块