代码:
import re
import os
def extract_and_save_links():
# 获取用户输入的文件路径
input_path = input("请输入文本文件路径:").strip('"') # 处理可能包含的引号
# 验证文件是否存在
if not os.path.exists(input_path):
print("错误:文件不存在,请检查路径!")
return
# 读取文件内容
try:
with open(input_path, 'r', encoding='utf-8') as file:
content = file.read()
except Exception as e:
print(f"读取文件出错:{str(e)}")
return
# 使用正则表达式提取所有http/https链接
link_pattern = re.compile(r'https?://[^\s<>"]+|www\.[^\s<>"]+')
links = link_pattern.findall(content)
# 去重
unique_links = list(set(links))
# 如果没有找到链接
if not unique_links:
print("未在文件中找到任何链接!")
return
# 生成输出文件路径(同目录下)
output_path = os.path.join(os.path.dirname(input_path), "去重链接.txt")
# 写入文件
try:
with open(output_path, 'w', encoding='utf-8') as file:
file.write("\n".join(unique_links))
print(f"成功提取并保存 {len(unique_links)} 个唯一链接到:{output_path}")
except Exception as e:
print(f"写入文件出错:{str(e)}")
if __name__ == "__main__":
print("=== 链接提取工具 ===")
print("功能:从文本文件中提取所有HTTP/HTTPS链接并去重")
extract_and_save_links()
input("\n按Enter键退出...")