欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>go语言对文件按照指定块大小进行分割的方法

go语言对文件按照指定块大小进行分割的方法

2022-06-29 08:19:51 收藏本文 下载本文

“两颗冥王星”通过精心收集,向本站投稿了5篇go语言对文件按照指定块大小进行分割的方法,下面是小编收集整理后的go语言对文件按照指定块大小进行分割的方法,仅供参考,希望能够帮助到大家。

go语言对文件按照指定块大小进行分割的方法

篇1:go语言对文件按照指定块大小进行分割的方法

作者:work24 字体:[增加 减小] 类型:

这篇文章主要介绍了go语言对文件按照指定块大小进行分割的方法,实例分析了Go语言文件操作的技巧,需要的朋友可以参考下

本文实例讲述了go语言对文件按照指定块大小进行分割的方法,分享给大家供大家参考。具体如下:

代码如下:

import (

// “bufio”

“flag”

“fmt”

“io”

“os”

)

import “strconv”

var infile *string = flag.String(“f”, “Null”, “please input a file name or dir.”)

var size *string = flag.String(“s”, “0”, “please input a dst file size.”)

//func dataCopy(file *os.File, file *os.File)

func SplitFile(file *os.File, size int) {

finfo, err := file.Stat

if err != nil {

fmt.Println(“get file info failed:”, file, size)

}

fmt.Println(finfo, size)

//每次最多拷贝1m

bufsize := 1024 * 1024

if size < bufsize {

bufsize = size

}

buf := make([]byte, bufsize)

num := (int(finfo.Size()) + size - 1) / size

fmt.Println(num, len(buf))

for i := 0; i < num; i++ {

copylen := 0

newfilename := finfo.Name() + strconv.Itoa(i)

newfile, err1 := os.Create(newfilename)

if err1 != nil {

fmt.Println(“failed to create file”, newfilename)

} else {

fmt.Println(“create file:”, newfilename)

}

for copylen < size {

n, err2 := file.Read(buf)

if err2 != nil && err2 != io.EOF {

fmt.Println(err2, “failed to read from:”, file)

break

}

if n <= 0 {

break

}

//fmt.Println(n, len(buf))

//写文件

w_buf := buf[:n]

newfile.Write(w_buf)

copylen += n

}

}

return

}

func main() {

flag.Parse()

if *infile == “Null” {

fmt.Println(“no file to input”)

return

}

file, err := os.Open(*infile)

if err != nil {

fmt.Println(“failed to open:”, *infile)

}

defer file.Close()

size, _ := strconv.Atoi(*size)

SplitFile(file, size*1024)

}

希望本文所述对大家的Go语言程序设计有所帮助,

篇2:python按照多个字符对字符串进行分割的方法

作者:八大山人 字体:[增加 减小] 类型:转载

这篇文章主要介绍了python按照多个字符对字符串进行分割的方法,涉及Python中正则表达式匹配的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了python按照多个字符对字符串进行分割的方法,分享给大家供大家参考。具体分析如下:

这段python代码通过这规则表达式对字符串进行分割,使用w作为分割符,只要不是字母和数字的就会被分割开来,

import reDATA = “Hey, you - what are you doing here! welcome to jb51?”print re.findall(r“[w‘]+”, DATA)

输出结果如下

代码如下:

[‘Hey‘, ‘you‘, ‘what‘, ‘are‘, ‘you‘, ‘doing‘, ‘here‘, ‘welcome‘, ‘to‘, ‘jb51‘

]

希望本文所述对大家的Python程序设计有所帮助。

篇3:python对指定目录下文件进行批量重命名的方法

作者:work24 字体:[增加 减小] 类型:

这篇文章主要介绍了python对指定目录下文件进行批量重命名的方法,涉及Python中replace及join方法的使用技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了python对指定目录下文件进行批量重命名的方法,分享给大家供大家参考。具体如下:

这段python代码可对c:temp目录下的所有文件名为”scroll_1”文件替换为”scroll_00”

import spath = ‘c:temp‘for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: newname = file.replace(“scroll_1”, “scroll_00”) os.rename(os.path.join(path,file),os.path.join(path,newname)) print(file)

希望本文所述对大家的Python程序设计有所帮助,

篇4:Go语言压缩和解压缩tar.gz文件的方法

作者:不吃皮蛋 字体:[增加 减小] 类型:转载

golang处理压缩包,最常用的就是tar.gz了,这里写了一个测试一下。

压缩文件:

代码如下:

package main

import (

“fmt”

“os”

“io”

“archive/tar”

“compress/gzip”

)

func main {

// file write

fw, err := os.Create(“tar/lin_golang_src.tar.gz”)

if err != nil {

panic(err)

}

defer fw.Close()

// gzip write

gw := gzip.NewWriter(fw)

defer gw.Close()

// tar write

tw := tar.NewWriter(gw)

defer tw.Close()

// 打开文件夹

dir, err := os.Open(“file/”)

if err != nil {

panic(nil)

}

defer dir.Close()

// 读取文件列表

fis, err := dir.Readdir(0)

if err != nil {

panic(err)

}

// 遍历文件列表

for _, fi := range fis {

// 逃过文件夹, 我这里就不递归了

if fi.IsDir() {

continue

}

// 打印文件名称

fmt.Println(fi.Name())

// 打开文件

fr, err := os.Open(dir.Name() + “/” + fi.Name())

if err != nil {

panic(err)

}

defer fr.Close()

// 信息头

h := new(tar.Header)

h.Name = fi.Name()

h.Size = fi.Size()

h.Mode = int64(fi.Mode())

h.ModTime = fi.ModTime()

// 写信息头

err = tw.WriteHeader(h)

if err != nil {

panic(err)

}

// 写文件

_, err = io.Copy(tw, fr)

if err != nil {

panic(err)

}

}

fmt.Println(“tar.gz ok”)

}

解压文件:

代码如下:

package main

import (

“fmt”

“os”

“io”

// “time”

“archive/tar”

“compress/gzip”

)

func main() {

// file read

fr, err := os.Open(“tar/lin_golang_src.tar.gz”)

if err != nil {

panic(err)

}

defer fr.Close()

// gzip read

gr, err := gzip.NewReader(fr)

if err != nil {

panic(err)

}

defer gr.Close()

// tar read

tr := tar.NewReader(gr)

// 读取文件

for {

h, err := tr.Next()

if err == io.EOF {

break

}

if err != nil {

panic(err)

}

// 显示文件

fmt.Println(h.Name)

// 打开文件

fw, err := os.OpenFile(“file2/” + h.Name, os.O_CREATE | os.O_WRONLY, 0644/*os.FileMode(h.Mode)*/)

if err != nil {

panic(err)

}

defer fw.Close()

// 写文件

_, err = io.Copy(fw, tr)

if err != nil {

panic(err)

}

}

fmt.Println(“un tar.gz ok”)

}

这样以后打包下载东西的时候就可以使用了,

希望本文所述对大家的Go语言程序设计有所帮助。

篇5:go语言检测文件是否存在的方法

作者:work24 字体:[增加 减小] 类型:转载

这篇文章主要介绍了go语言检测文件是否存在的方法,实例分析了Go语言文件操作的相关技巧,需要的朋友可以参考下

本文实例讲述了go语言检测文件是否存在的方法,分享给大家供大家参考。具体分析如下:

go语言检测文件是否存在,首先创建一个FileInfo,如果不报错,再通过 IsDir()检查是否是目录

代码如下:

finfo, err := os.Stat(“filename.txt”)

if err != nil {

// no such file or dir

return

}

if finfo.IsDir() {

// it‘s a file

} else {

// it‘s a directory

}

希望本文所述对大家的Go语言程序设计有所帮助,

【go语言对文件按照指定块大小进行分割的方法】相关文章:

1.Go语言生成随机数的方法

2.Go语言中使用反射的方法

3.go语言获取系统盘符的方法

4.go语言通过管道连接两个命令行进程的方法

5.浅谈对中学生进行心理训练的原则与方法

6.对低年级小学生进行德育的有效方法与途径

7.linux下对一个文件设置多个组的权限(setfaclgetfacl)方法管理

下载word文档
《go语言对文件按照指定块大小进行分割的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

go语言对文件按照指定块大小进行分割的方法相关文章
最新推荐
猜你喜欢
  • 返回顶部