习惯了Python里面对文件的操作简单随意,刚上手Go语言这样类似C语言的文件操作方法,一时还不习惯使用buffer来读取和吸入文件。在python中文件对象可以使用readLines和writeLines来遍历文件的行,十分的方便。
如果在Go语言里面也能有这样的方法就好了,找了半天API,还是没有收获。求人不如求己,自己写一个。
代码如下:
package main
import (
"io"
"os"
"bufio"
"bytes"
"fmt"
"strings"
)
func readLines(path string)(lines [] string,err error){
var (
file *os.File
part [] byte
prefix bool
)
if file, err = os.Open(path); err != nil {
return
}
reader := bufio.NewReader(file)
buffer := bytes.NewBuffer(make([]byte,1024))
for {
if part, prefix, err = reader.ReadLine();err != nil {
break
}
buffer.Write(part)
if !prefix {
lines = append(lines,buffer.String())
buffer.Reset()
}
}
if err == io.EOF {
err = nil
}
return
}
func writeLines(lines [] string,path string)(err error){
var file *os.File
if file,err = os.Create(path); err != nil{
return
}
defer file.Close()
for _,elem := range lines {
_,err := file.WriteString(strings.TrimSpace(elem)+"\n")
if err != nil {
fmt.Println(err)
break
}
}
return
}
func main(){
lines, err := readLines("5906376")
if err != nil{
fmt.Println("Error:%s\n",err)
return
}
for _,line := range lines {
fmt.Println(line)
}
err= writeLines(lines,"a.txt")
fmt.Println(err)
}
分享到:
相关推荐
本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一、switch语句 switch语句提供了一个多分支条件执行的方法。每一个case可以携带一个表达式...
Go语言,又称Golang,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它设计的目标是提高开发者的生产效率,同时保持系统级编程的性能。Go语言的设计受到了C、 Pascal、 Miranda和...
首先,我们来理解Golang是什么,然后逐步介绍在Ubuntu上安装Go和GoLand的过程。 Golang,通常简称为Go,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。Go的设计目标是提高开发者的...
Golang程序(可能就是goRtsp.exe)作为一个中间层,它接收RTSP流,对视频流进行处理(例如,转码、切片),然后提供一个Web友好的格式,如HLS,使Web前端可以轻松地通过AJAX或Fetch API请求并播放这些流。...
前言 Python是时髦的机器学习御用开发语言,Golang是大红大紫的新时代后端开发...本文以 Ubuntu 18.04 作为开发和运行平台进行演示。 其实在使用 cgo 之前,笔者也考虑过使用 grpc 的方式。比如可以将需要调用的 pytho
weixin-golang-sdk 微信golang工具包
此外,golang-odbc 还提供了 `Prepare` 和 `Exec` 方法用于执行参数化查询和 DDL 语句,以及 `Begin`, `Commit`, 和 `Rollback` 方法进行事务控制。 值得注意的是,虽然 golang-odbc 驱动提供了一个与数据库交互的...
Golang 中的 cgo 使用方法,调用 mysql (c语言类库)为案例
中级题目的判断题可能会探讨程序包的初始化顺序和方法,以及在并发编程中如何使用channel进行协程间的通信。 题目中还涉及了Golang中一些较为高级的特性,例如类型转换和重构,以及对const常量定义的考察。在类型...
在本文中,我们将深入探讨如何使用Golang语言开发一个Modbus RTU实例,并结合Modbus Slave软件进行...理解并熟练掌握这种通信协议的实现和测试方法,是成为一名优秀的Golang开发者和工业自动化工程师的关键技能之一。
Golang-磁力链接和 BT 种子的搜索引擎
在Golang生态系统中,`golang.org/x`是一个非常重要的包集合,它包含了大量由Go官方维护和贡献的扩展库。这些包覆盖了各种功能,从网络编程到文本处理,为Go开发者提供了丰富的工具和解决方案。`golang.org/x`包系列...
在编程领域,Go语言(Golang)以其高效、简洁和并发特性受到了许多开发者的青睐。在Windows平台上,尽管Go语言最初的设计目标并非图形用户界面(GUI)开发,但随着技术的发展,已经出现了一些优秀的框架使得Go语言也...
在docker上测试golang 使用golang和mysql创建一个最小的开发环境
Golang,作为一种现代且高效的编程语言,因其强大的系统级编程能力和并发特性而受到广泛欢迎。在本文中,我们将深入探讨如何利用Golang实现这个功能,并了解相关的核心知识点。 首先,我们需要了解的是Golang的图形...
一种常见的方法是使用哈希表或者布隆过滤器来存储客户端的IP和端口,以便快速查找和定位目标。 为了优化性能,我们还需要考虑以下几点: 1. **缓冲区管理**:设置适当的读写缓冲区大小可以减少系统调用的频率,...
本文将深入探讨如何在Golang中解析PKCS#1和PKCS#8格式的私钥,以及与数字证书相关的概念。 首先,让我们了解一些基本概念: 1. **数字证书(Digital Certificate)**:也称为X.509证书,是一种标准格式,用于在...
Golang开发培训知识图谱覆盖了Golang语言的基础知识点和高级应用技能。Golang(通常称为Go)是由Google开发的静态类型、编译型语言,其设计初衷是让编程更简单、高效、安全。该知识图谱主要包含以下几个模块: 1. *...
- **golang-demo使用手册.docx**:这个文档很可能是详细指导如何使用`golang-demo.go`源代码的指南,包括配置步骤、调用API的示例以及可能出现的问题和解决方案。建议仔细阅读,以便更好地理解和应用代码。 - **...
标题中提到的"Golang HTTP连接复用方法"主要涉及到两个关键部分:服务器端的配置和客户端的设置。 **服务器端配置** 在Golang的`http.Server`中,默认情况下已经启用了Keep-Alive选项,这意味着服务器会尝试复用...