38 lines
1.6 KiB
Python
38 lines
1.6 KiB
Python
# 对ipdb.txt的内容进行去重和排序,并输出到ipdb.txt中
|
||
|
||
# 将ipdb.txt备份为ipdb_日期_时间.txt 格式
|
||
import datetime
|
||
|
||
def main(filename='ipdb.txt'):
|
||
date = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
|
||
with open(filename, 'r') as f:
|
||
lines = f.readlines()
|
||
print(f"{filename.split('.')[0]}_{date}.txt")
|
||
with open(f"{filename.split('.')[0]}_{date}.txt", 'w') as f:
|
||
f.write(''.join(lines))
|
||
print('备份完成!')
|
||
|
||
with open(filename, 'r') as f:
|
||
# 读取内容,并将每行的数据进行排序
|
||
lines = f.readlines()
|
||
lines_without_newlines = [line.strip() for line in lines]
|
||
# 对lines_without_newlines进行去重
|
||
lines_without_newlines = list(set(lines_without_newlines))
|
||
# 剔除lines_without_newlines中空的元素和#开头的元素
|
||
lines_without_newlines = [line for line in lines_without_newlines if line and not line.startswith('#')]
|
||
# 将ip清单中的每个ip地址按照点分十进制进行排序
|
||
lines_without_newlines.sort(key=lambda x: tuple(map(int, x.split('/')[0].split('.'))))
|
||
# 在lines_without_newlines开头插入新元素
|
||
lines_without_newlines.insert(0, '# IP段清单')
|
||
print(lines_without_newlines)
|
||
# 打印lines_without_newlines的长度
|
||
print(len(lines_without_newlines))
|
||
# 将排序后的内容写入文件,要求每个元素一行
|
||
with open(filename, 'w') as f:
|
||
f.write('\n'.join(lines_without_newlines))
|
||
print('排序完成,更新完成!')
|
||
|
||
|
||
|
||
if __name__ == '__main__':
|
||
main() |