我需要您帮助处理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文件。
提前致谢!

最佳答案

您可以声明一个像这样的函数

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之类的模块。

10-06 08:36