方法将python模块输出写入toml文件

2024-05-15 02:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写一个扫描程序,它将收集有关目标的各种信息,如开放端口、版本信息等。 还可以使用一个toml文件,该文件保存单个扫描的配置设置

我需要一个方法来存储扫描结果。到目前为止,我使用的是一个保存所有目标数据的类。是否有办法将结果存储在文件中,并让库函数根据请求解析和打印它们

在toml表示中,我想到的是

[target]
ip = xx.xx.xx.xx
  [target.os]
  os = 'win 10'
  Arch = 'x64'

  [target.ports]
  ports = ['1', '2']

    [target.ports.1]
    service = 'xxx'
    ver = '5.9'

有没有办法以这种方式将扫描结果转储到toml文件?还是有其他方法可以做得更好


Tags: 文件数据方法端口程序信息target目标
2条回答

{a1}库可以为您执行此操作。还有一些类似jsonpyyaml等的方法也差不多。在您的示例中,首先需要将信息以以下格式存储在字典中:

data = {
  "target": {
    "ip": "xx.xx.xx.xx",
    "os": {
      "os": "win 10",
      "Arch": "x64"
    },
    "ports": {
      "ports": ["1", "2"],
      "1": {
        "service": "xxx",
        "ver": "5.9",
      }
    } 
  }
}

然后,您可以执行以下操作:

import toml

toml_string = toml.dumps(data)  # Output to a string

output_file_name = "output.toml"
with open(output_file_name, "w") as toml_file:
    toml.dump(data, toml_file)

类似地,您也可以使用以下方法将toml文件加载到字典格式中:

import toml

toml_dict = toml.loads(toml_string)  # Read from a string

input_file_name = "input.toml"
with open(input_file_name) as toml_file:
    toml_dict = toml.load(toml_file)

如果您不想使用toml而想使用yamljson,那么只需在所有命令中用yamljson替换toml即可。他们都使用相同的呼叫约定

您可以使用此stacktrace实现您想要做的事情:

1。您可能可以通过this方法将类的数据提取为字典

2.this将其写入文件

3.从那里将其加载到字典到toml转换器中,其中toml.dump包含更多信息here

相关问题 更多 >

    热门问题