使用go读取gzip格式的压缩包的操作
我就废话不多说了,大家还是直接看代码吧~
package main // 引入所需包 import ( "os" "compress/gzip" "io/ioutil" "fmt" ) // gzip文件 var fn = "./113.200.251.66_1510825558_A6D39783B05943D8ACA64F397748CF1B_vdn.gz" func main() { println(fn) // 打开本地gz格式压缩包 fr, err := os.Open(fn) if err != nil { panic(err) } else { println("open file success!") } // defer: 在函数退出时,执行关闭文件 defer fr.Close() // 创建gzip文件读取对象 gr, err := gzip.NewReader(fr) if err != nil { panic(err) } // defer: 在函数退出时,执行关闭gzip对象 defer gr.Close() // 读取gzip对象内容 rBuf, err := ioutil.ReadAll(gr) if err != nil { fmt.Println("[read gzip data err]: ", err) } // 以文本形式输出 fmt.Printf("%s\n", rBuf) }
输出: ABCDEFG
补充:golang通过在线读取请求url返回的zip内部内容
访问url返回的zip包,怎么直接解析zip中的文件并获取文件中的信息呢?
以前都是用java语言做这些事情,今天闲来蛋疼,用golang也实现了一下,效果已经发布在我的公众号:j全家桶---激活码中。
引用了以下包:
"archive/zip" "bufio" "bytes" "fmt" "io" "io/ioutil" "net/http" "os"
1、通过http包内部方法,请求了需要访问的url,这次只是为了分享在线解析zip,所以地址就不写出来了。
2、读取字节流并新建一个读卡器指定读取大小,最好弄个延迟关闭流不然内存泄露那是必须的。
3、接下来就是获取zip中的信息,只需要遍历一下读取到的文件把数据取出来就行了
其实还是蛮简单的,只是golang语言用得少,对于流的操作也比较少所以写一个今天实现这个功能的总结,点滴积累厚积薄发!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
golang 如何获取pem格式RSA公私钥长度
因在做license注册机制当中,有对根据本地RSA pem密钥文件判断出RSA的公私密钥长度的需求(即:根据pem内容判断出RSA密钥是1024位或者2048位,或者其他位数等),因此个人通过思考,摸索整理出一个方法,予以记录,备用,分享. package main import ( "crypto/rsa" "crypto/x509" "encoding/pem" "errors" "fmt" &quo
-
go判断文件夹是否存在并创建的实例
我就废话不多说了,大家还是直接看代码吧~ package main import ( "fmt" "os" ) // 判断文件夹是否存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err
-
Go 语言中gin使用gzip压缩遇到的问题
最近学习go语言写了个 成都房地产薪酬 网站,抓取网上的招聘信息并进行统计.中间遇到一些坑在这里记录下来方便以后查阅 gzip压缩是每个web应用必不可少的,这项目使用gin作为web框架,gin支持使用中间件,github上有实现好的gzip中间件:gin-contrib/gzip 安装: go get github.com/gin-contrib/gzip 使用: func main() { r := gin.Default() r.Use(gzip.Gzip(gzip.DefaultCom
-
go 协程返回值处理操作
我就废话不多说了,大家还是直接看代码吧~ package main import "fmt" import "sync" var ch = make(chan int) func do(lock *sync.Mutex, ct *int) { lock.Lock() *ct++ lock.Unlock() ch <- 1 } func main() { fmt.Println("hello thread") var ct = 0 lock
-
golang文件读取-按指定BUFF大小读取方式
a.txt文件内容: ABCDEFGHI HELLO GOLANG package main import ( "fmt" "os" "io" ) func main() { fileName := "C:\\Robert\\日志分析\\tools_go\\vdn_sqlInterface\\a.txt" file, err := os.OpenFile(fileName, os.O_RDWR, 0666) if err !=
-
golang实现的文件上传下载小工具
前言 虽然现在文件上传下载工具多如牛毛,比如http.ftp.sftp.scp等方案都可以用于文件传输,但都是需要安装服务器甚至客户端. 有一种场景是我只需要临时上传或下载一个文件,完了就不用服务器运行了,如果使用那些文件传输工具,不光安装麻烦,开启关闭也恼火额. 因此才想搞小工具,不过Python爱好者可以用python -m http.server 8080 --bind 192.168.1.100开启文件服务器,对我来说还是麻烦. 已经上传到[Github],随意鉴赏. 源码鉴赏 模拟一个
-
Golang 实现复制文件夹同时复制文件
Golang 复制文件夹,包括文件夹中的文件 /** * 拷贝文件夹,同时拷贝文件夹中的文件 * @param srcPath 需要拷贝的文件夹路径: D:/test * @param destPath 拷贝到的位置: D:/backup/ */ func CopyDir(srcPath string, destPath string) error { //检测目录正确性 if srcInfo, err := os.Stat(srcPath); err != nil { fmt.Println(
-
使用go读取gzip格式的压缩包的操作
我就废话不多说了,大家还是直接看代码吧~ package main // 引入所需包 import ( "os" "compress/gzip" "io/ioutil" "fmt" ) // gzip文件 var fn = "./113.200.251.66_1510825558_A6D39783B05943D8ACA64F397748CF1B_vdn.gz" func main() { println(f
-
对Python3+gdal 读取tiff格式数据的实例讲解
1.遇到的问题:numpy版本 im_data = dataset.ReadAsArray(0,0,im_width,im_height)#获取数据 这句报错 升级numpy:pip install -U numpy 但是提示已经是最新版本 解决:卸载numpy 重新安装 2.直接从压缩包中读取tiff图像 参考:http://gdal.org/gdal_virtual_file_systems.html#gdal_virtual_file_systems_vsizip 当前情况是2层压缩: /
-
php简单读取.vcf格式文件的方法示例
本文实例讲述了php简单读取.vcf格式文件的方法.分享给大家供大家参考,具体如下: /** * 读取.vcf格式文件 * @param $filename */ function readCvf($filename){ $file = fopen($filename,"r"); while(! feof($file)) { $line=fgets($file); $encoding = mb_detect_encoding($line, array('GB2312','GBK','U
-
PHP读取XML格式文件的方法总结
本文实例总结了PHP读取XML格式文件的方法.分享给大家供大家参考,具体如下: books.xml文件: <books> <book> <author>Jack Herrington</author> <title>PHP Hacks</title> <publisher>O'Reilly</publisher> </book> <book> <author>Jack Her
-
Python使用xlrd读取Excel格式文件的方法
本文实例讲述了Python使用xlrd读取Excel格式文件的方法.分享给大家供大家参考.具体如下: 使用xlrd能够很方便的读取excel文件内容,而且这是个跨平台的库,能够在windows,linux/unix,等平台上面使用,代码如下: import xlrd fname = "sample.xls" bk = xlrd.open_workbook(fname) shxrange = range(bk.nsheets) try: sh = bk.sheet_by_name(&qu
-
利用AdoDb.Stream对象来读取UTF-8格式的文本文件
复制代码 代码如下: '函数名称:ReadTextFile '作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件 '---------------------------------------------------- Function ReadFromTextFile (FileUrl,CharSet) If FileUrl = "" OR IsNull(FileUrl) Then ReadFromT
-
C#读取csv格式文件的方法
本文实例讲述了C#读取csv格式文件的方法.分享给大家供大家参考.具体实现方法如下: 一.CSV文件规则 1 开头是不留空,以行为单位. 2 可含或不含列名,含列名则居文件第一行. 3 一行数据不跨行,无空行. 4 以半角逗号(即,)作分隔符,列为空也要表达其存在. 5 列内容如存在半角逗号(即,)则用半角引号(即',')将该字段值包含起来. 6 列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来.
-
pandas 读取各种格式文件的方法
pandas 读取各种格式文件: 前置工序: import pandas as pd csv 文件读取中文错误处理: utf-8 codec can't decode .... pd.read_csv('c:/mydata/jit.csv',encoding='gb18030') sql 读取: import pymysql conn=pymysql.connect(host='127.0.0.1', user='root', passwd='root', db=' employee') sql
-
读取json格式为DataFrame(可转为.csv)的实例讲解
有时候需要读取一定格式的json文件为DataFrame,可以通过json来转换或者pandas中的read_json(). import pandas as pd import json data = pd.DataFrame(json.loads(open('jsonFile.txt','r+').read()))#方法一 dataCopy = pd.read_json('jsonFile.txt',typ='frame') #方法二 pandas.read_json(path_or_buf
-
python 读取.nii格式图像实例
我就废话不多说了,大家还是直接看代码吧~ # encoding=utf8 ''' 查看和显示nii文件 ''' import matplotlib matplotlib.use('TkAgg') from matplotlib import pylab as plt import nibabel as nib from nibabel import nifti1 from nibabel.viewers import OrthoSlicer3D example_filename = '../AD
随机推荐
- Golang巧用defer进行错误处理的方法
- DB2个人版(Linux)安装
- mysql 海量数据的存储和访问解决方案
- jQuery实现对网页节点的增删改查功能示例
- php用户注册页面利用js进行表单验证具体实例
- 用XP SP2仿真2003远程多用户登录
- JavaScript在ASP页面中实现掩码文本框效果代码
- Android应用的Material设计中图片的相关处理指南
- 从零学习node.js之搭建http服务器(二)
- 纯javaScript、jQuery实现个性化图片轮播【推荐】
- jQuery实现验证年龄简单思路
- jQuery中height()方法用法实例
- 详述 DB2 分页查询及 Java 实现的示例
- 浅谈两个jar包中包含完全相同的包名和类名的加载问题
- 一个在线后台下载的阅读引擎
- 使用 docker-compose 运行 MySQL的方法
- JS中的防抖与节流及作用详解
- Python 使用类写装饰器的小技巧
- laravel 解决groupBy时出现的错误 isn't in Group By问题
- golang利用unsafe操作未导出变量-Pointer使用详解