golang生成vcf通讯录格式文件详情


Posted in Golang onMarch 25, 2022

前言:

vcf文件:​VCF是通讯录格式文件,一般需要用手机通讯录导入导出的文件格式都是vcf格式。​

目的:​如果你是卖房销售,或者你是做什么推销的,你可以生成同城的手机号,一个个打电话推销。​

1.源码​

package number
/*
@Time : 2021/12/22 17:44
@Author :dengfeng_hu
@File : phone
@Software: GoLand
*/

import (
"bufio"
"fmt"
"io"
"os"
"strconv"
"strings"
"time"
)

const (
inputFilePath = "D:/phone.txt"
fileName = "洛阳"
last = "36"
fileSize = 5
outputPath = "D://phoneNumber"
)

func getNum(fileName string) int {
var num = 1
for {
if _,err:=os.Stat("D://phoneNumber/" + fileName + strconv.Itoa(num)+".vcf");
os.IsNotExist(err){
return num
}
num++
}
}


func Exe() {
mid := read()
for i:=0;i<len(mid);i=i+5{
var subList []string
if i+fileSize<len(mid){
subList = mid[i:i+fileSize:len(mid)]
}else{
subList = mid[i:len(mid):len(mid)]
}
fmt.Println(subList)
MyTest(subList,fileName,last)
}
}

func MyTest(mid []string,fileName string,last string){
num := getNum(fileName)
file, err := os.OpenFile(outputPath+"/" + fileName +strconv.Itoa(num) +".vcf", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
fmt.Println("文件打开失败", err)
return
}
//及时关闭file句柄
defer file.Close()
write := bufio.NewWriter(file)
count:=1
for i := 0;i<len(mid);i++{
for j := 0;j<100;j++{
phoneNumber := strings.ReplaceAll(mid[i],"\r\n","") + fmt.Sprintf("%02d", j) + last
makeNumber(phoneNumber,write,strconv.Itoa(count))
count++
}
}
makeNumber("15804299051",write,strconv.Itoa(count))
write.Flush()
fmt.Println("文件创建成功,时间:"+time.Now().Format("2006-01-02 15:04:05"))
}


func makeNumber(num string,w *bufio.Writer,index string){
w.WriteString("BEGIN:VCARD" + "\r\n")
w.WriteString("VERSION:3.0" + "\r\n")
w.WriteString("FN;CHARSET=UTF-8:1" + "\r\n")
w.WriteString("N;CHARSET=UTF-8:;;" + "A"+index +";;" + "\r\n")
w.WriteString("TEL;TYPE=CELL:" + num + "\r\n")
w.WriteString("END:VCARD" + "\r\n")

}

func read() []string{
var mid []string
f, err := os.Open(inputFilePath)
if err != nil {
panic(err)
}
defer f.Close()
rd := bufio.NewReader(f)
for {
line, err := rd.ReadString('\n') //以'\n'为结束符读入一行
if err != nil || io.EOF == err {
break
}
mid = append(mid,line)
}
fmt.Println("mid size:" + strconv.Itoa(len(mid)))
fmt.Println("mid " )
fmt.Println(mid)
return mid
}

2.源码解析

golang生成vcf通讯录格式文件详情

inoputFilePath是输入文件,也就是你想生成哪个城市的电话号的前六位。last是后两位。

outputPath是生成文件目录

比如188**23,后两位就是23,fileSize是文件号码数量。5代表一个文件500个电话号

golang生成vcf通讯录格式文件详情

golang生成vcf通讯录格式文件详情

文件来源直接百度搜。比如洛阳188查号吧

golang生成vcf通讯录格式文件详情

golang生成vcf通讯录格式文件详情

查好了复制进去即可。

3.运行结果

golang生成vcf通讯录格式文件详情

到此这篇关于golang生成vcf通讯录格式文件详情的文章就介绍到这了,更多相关golang生成vcf格式文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
Go Gin实现文件上传下载的示例代码
Apr 02 Golang
Golang 正则匹配效率详解
Apr 25 Golang
golang中实现给gif、png、jpeg图片添加文字水印
Apr 26 Golang
golang http使用踩过的坑与填坑指南
Apr 27 Golang
golang 接口嵌套实现复用的操作
Apr 29 Golang
Golang中interface{}转为数组的操作
Apr 30 Golang
解决golang post文件时Content-Type出现的问题
May 02 Golang
Go语言应该什么情况使用指针
Jul 25 Golang
Golang表示枚举类型的详细讲解
Sep 04 Golang
Go语言读取txt文档的操作方法
Jan 22 Golang
Golang 并发下的问题定位及解决方案
Mar 16 Golang
Golang数据类型和相互转换
Apr 12 Golang
golang实现浏览器导出excel文件功能
Golang使用Panic与Recover进行错误捕获
Mar 22 #Golang
Go语言特点及基本数据类型使用详解
详解Golang如何优雅的终止一个服务
Mar 21 #Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 #Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 #Golang
Golang 并发下的问题定位及解决方案
Mar 16 #Golang
You might like
php采集时被封ip的解决方法
2010/08/29 PHP
php的ajax简单实例
2014/02/27 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
php7下的filesize函数
2019/09/30 PHP
使用firebug进行调试javascript的示例
2013/12/16 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python元组知识点总结
2019/02/18 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
python实现三种随机请求头方式
2021/01/05 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
临床医学大学生求职信
2013/09/28 职场文书
四好少年事迹材料
2014/01/12 职场文书
运动会入场词50字
2014/02/20 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python