本次学习目的:熟悉了解 go 语言特点,实现基本功能。

1、readfile.go

 package main

 import (
"bufio"
"fmt"
"io"
"os"
) func ReadFile(filepath string) []string {
fi, err := os.Open(filepath)
if err != nil {
fmt.Printf("Read file error\n")
}
defer fi.Close() br := bufio.NewReader(fi)
var lineList []string
for {
line, _, err := br.ReadLine()
if err == io.EOF {
break
}
if err != nil {
fmt.Println("Error!")
}
lineList = append(lineList, string(line))
}
return lineList
}

2、main.go 的实现

 package main

 import (
"fmt"
"io"
"net/http"
"os"
"path/filepath"
"strings"
"time"
) var (
url = "http://132.121.00.111:8008/REST/docServiceV2?timestamp=14500903392000&organId=2222&busiType=1&appId=crmlog&staffNo=GZTEST200&filename=JBRZP/20180927/76920180927173700060_713991642.jpg&method=get&password=crmlog1452&latnId=769&signature=731ccc37de5e48dc69bb9ba34b9f3188&version=001"
filename = "JBRZP/20180927/76920180927173700060_713991642.jpg"
str = "latnId=769"
) func checkErr(err error) {
if err != nil {
panic(err)
}
} func CreateDateDir(Path string) string {
foldname := time.Now().Format("")
foldpath := filepath.Join(Path, foldname)
if _, err := os.Stat(foldpath); os.IsNotExist(err) {
os.Mkdir(foldpath, 0777)
os.Chmod(foldpath, 0777)
}
return foldpath
} func downLoad(buf []string, new_url string, filename string, fold string) {
var (
i int
image_url, image_path string
list []string
)
for i = 0; i < len(buf); i++ {
list = strings.Split(buf[i], "/")
image_url = strings.Replace(new_url, filename, buf[i], -1)
res, err := http.Get(image_url)
image_path = filepath.Join(fold, list[len(list)-1])
f, err := os.Create(image_path)
checkErr(err)
io.Copy(f, res.Body)
}
} func main() {
var (
new_url, latnID, newpath string
)
fmt.Println("请输入区号(如广州:200): ")
fmt.Scanln(&latnID)
latnID = "latnID=" + latnID
path, err := os.Getwd()
checkErr(err)
newpath = CreateDateDir(path)
data_path := path + "\\data.txt"
buf := ReadFile(data_path)
new_url = strings.Replace(url, str, latnID, -1)
downLoad(buf, new_url, filename, newpath)
fmt.Println("GetImage Success!")
}

学习参考:

1、 go 语言学习手册 : https://cloud.tencent.com/developer/doc/1101

2、 go 语言开发 IDE 推荐:LiteIDE

3、 go 开发环境配置参考:https://blog.csdn.net/meiwei_1/article/details/79193853

go 语言学习笔记(一)的更多相关文章

  1. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  2. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  3. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  4. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  5. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  6. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  7. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  8. Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...

  9. Go语言学习笔记十: 结构体

    Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

  10. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

随机推荐

  1. Mac OS环境下DOSBox汇编环境的搭建

    平台: mac 工具: DOSBox(点击下载DOSBox官网) debug.edit.link.masm等等(点击下载masm汇编开发工具,提取码: skc8) 步骤: 1 .安装DOSBox: 解 ...

  2. 【转载】Office软件自定义功能区不完全显示修复方法

    转载地址:http://www.doudouxitong.net/guzhang/xitongjiqiao/2015/0603/8822.html 豆豆系统 Office是比较常用的办公软件,我们也会 ...

  3. Python之 Virtualenv简明教程

    virtualenv通过创建独立Python开发环境的工具, 来解决依赖.版本以及间接权限 问题. 比如一个项目依赖Django1.3 而当前全局开发环境为Django1.7, 版本跨度过大, 导致不 ...

  4. 嵌入式GCC笔记

    GNU C Complier 查看 gcc 版本 :gcc -v 文件后缀名  .c的后缀 为C语言的文件源码 gcc  -o output gcc -o 输出文件名字 输入文件名 gcc -v -o ...

  5. MySQL表介绍

    MySQL InnoDB表介绍 一.索引组织表 在InnoDB引擎中,表都是根据主键顺序存放的.这种存储方式称为索引组织表,在InnoDB引擎中,每张表都有逐渐.如果没有显示定义主键,则引擎会按照以下 ...

  6. Redis 单机部署

    参考文章: https://www.cnblogs.com/zy-303/p/10273167.html#_label0 https://blog.csdn.net/linyifan_/article ...

  7. 自己DIY出来一个JSON结构化展示器

    说来也巧,这个玩意,一直都想亲手写一个,因为一直用着各种网上提供的工具,觉得这个还是有些用途,毕竟,后面的实现思路和原理不是太复杂,就是对json的遍历,然后给予不同节点类型以不同的展现风格. 我这次 ...

  8. docker配置phpadmin需要注意的地方

    因为web服务是在容器内跑的,ip地址注意,如果没有特殊配置,应该使用172.

  9. java中的线程中断

    线程会根据中断标志位 自行了断自己 https://www.cnblogs.com/yangming1996/p/7612653.html 如何停止线程 1.设置中断标识位 2.sleep时设置中断标 ...

  10. jmeter问题

    1.使用jmeter传入json参数报错 具体场景:使用python+request执行接口测试,正常:把python的参数直接复制,使用jmeter执行接口测试,提示json格式错误. {...,& ...