1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import os
import yaml
class OverwriteYaml:
def __init__(self, path_dict):
self.traffic_playback_workpath = path_dict["traffic_playback_workpath"]
self.data_path = os.path.join(self.traffic_playback_workpath, "traffic_pcap")
def replace_from_yaml(self, yaml_name, pcap_name, clients_start="10.50.36.1", clients_end="10.50.36.1", servers_start="10.50.66.1", servers_end="10.50.66.1"):
# 组织yaml路径、pcap路径
yaml_abs_path = os.path.join(self.data_path, yaml_name)
pcap_abs_path = os.path.join(self.data_path, pcap_name)
#print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), str(datetime.now().microsecond)[:3], yaml_abs_path, pcap_abs_path)
with open(yaml_abs_path, "r", encoding="utf-8") as f:
result = yaml.load(f.read(), Loader=yaml.FullLoader)
# 修改pcap文件路径
result[0]["cap_info"][0]["name"] = pcap_abs_path
result[0]["generator"]["clients_start"] = clients_start
result[0]["generator"]["clients_end"] = clients_end
result[0]["generator"]["servers_start"] = servers_start
result[0]["generator"]["servers_end"] = servers_end
# 修改后重写数据
with open(yaml_abs_path, "w", encoding="utf-8") as f:
yaml.dump(result, f)
# print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), str(datetime.now().microsecond)[:3], result)
|