pythonimport re
def extract_emails_from_file(filename):
"""从文件中提取所有邮箱地址"""
with open(filename, 'r', encoding='utf-8') as file:
content = file.read()
# 使用正则表达式匹配邮箱地址
emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', content)
return emails
def create_vcard(email):
"""为单个邮箱创建vCard字符串"""
username = email.split('@')[0]
vcard = f"""BEGIN:VCARD
VERSION:3.0
EMAIL:{email}
N:{username};{username};;;
X-RAMBLER-CONTACT-TYPE:manual
END:VCARD
"""
return vcard
def generate_vcf(emails, output_filename):
"""生成包含所有邮箱的vcf文件"""
with open(output_filename, 'w', encoding='utf-8') as vcf_file:
for email in emails:
vcard = create_vcard(email)
vcf_file.write(vcard)
vcf_file.write('\n') # 每个vCard之间用空行分隔
def main():
input_filename = input("请输入包含邮箱的文件名: ")
output_filename = input("请输入输出的vcf文件名(例如: contacts.vcf): ")
emails = extract_emails_from_file(input_filename)
if not emails:
print("没有找到任何邮箱地址。")
return
generate_vcf(emails, output_filename)
print(f"成功生成 {len(emails)} 个联系人到 {output_filename}")
if __name__ == "__main__":
main()
本文作者:tiger
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!