以下是一个示例代码,演示了如何按照唯一的源IP +目标IP对日志文件进行排序。
from collections import defaultdict
# 读取日志文件,每行为 "源IP 目标IP"
def read_log_file(file_path):
log_data = []
with open(file_path, 'r') as file:
for line in file:
source_ip, target_ip = line.strip().split()
log_data.append((source_ip, target_ip))
return log_data
# 按照源IP + 目标IP进行排序
def sort_log_data(log_data):
sorted_data = sorted(log_data, key=lambda x: (x[0], x[1]))
return sorted_data
# 打印排序后的日志数据
def print_sorted_data(sorted_data):
for source_ip, target_ip in sorted_data:
print(f"源IP: {source_ip}, 目标IP: {target_ip}")
# 主函数
def main():
file_path = 'log.txt' # 日志文件路径
log_data = read_log_file(file_path)
sorted_data = sort_log_data(log_data)
print_sorted_data(sorted_data)
if __name__ == '__main__':
main()
假设日志文件 log.txt
的内容如下:
192.168.1.1 10.0.0.1
192.168.1.2 10.0.0.2
192.168.1.1 10.0.0.3
192.168.1.3 10.0.0.1
运行上述代码将按照唯一的源IP + 目标IP对日志文件进行排序,输出结果如下:
源IP: 192.168.1.1, 目标IP: 10.0.0.1
源IP: 192.168.1.1, 目标IP: 10.0.0.3
源IP: 192.168.1.2, 目标IP: 10.0.0.2
源IP: 192.168.1.3, 目标IP: 10.0.0.1