Go语言读取txt文档的操作方法


Posted in Golang onJanuary 22, 2022

读取文件是所有编程语言中最常见的操作之一。本教程我们将了解如何使用 Go 读取txt文档。

  1. 文档内容每行是一个文件名信息,含有空格区分不同项;
  2. ioutil.ReadFile返回的是[]bytes切片类型,使用string()转换为string类型,并用strings.Split()按行分割成切片;
  3. 把每行的文件名信息按空格分割成切片存入var dataNameSlice [][]string
  4. 每一行的文件名信息处理成一个string字符串,存入var dataName []string,这里用strings.Join()方法将前3项信息以下划线连接;
package main
 
import (
	"fmt"
	"io/ioutil"
	"strings"
	"os"
)
func main() {
	fileName := "file1.txt"  // txt文件路径
	data, err_read := ioutil.ReadFile(fileName)   // 读取文件
	if err_read != nil {
		fmt.Println("文件读取失败!")
	}
	dataLine := strings.Split(string(data), "\n") // 将文件内容作为string按行切片
	var dataNameSlice [][]string                  // 用于存储每行内容的Slice
	var dataName []string                         // 整理每行内容成一个string
	for i, line := range(dataLine) {
		dataNameSlice = append(dataNameSlice, strings.Split(line, " "))       // 每行内容按空格分割成切片
		dataName = append(dataName, strings.Join(dataNameSlice[i][:3], "_"))  // 每行内容切片的前3项用_连成string
		dataName[i] = dataName[i] + ".md"
		// fmt.Println(dataName[i])
	for i, dataNameString := range(dataName) {
		if _, err := os.Stat(dataNameString); os.IsNotExist(err) { // 判断文件是否存在
			os.Create(dataNameString)
		} else {
			fmt.Printf("%d. [%s] File already exist!\n", i, dataNameString)
		}
}

补充:golang 按行读取文件

file, err := os.Open("app-2019-06-01.log")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
            lineText := scanner.Text()
 
        }

整个读取

b, err := ioutil.ReadFile("app-2019-06-01.log") // just pass the file name
        fmt.Print(err)

str := string(b) // convert content to a 'string'

fmt.Println(str) // print the content as a 'string'

到此这篇关于Go语言读取txt文档的文章就介绍到这了,更多相关Go读取txt文档内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
Golang: 内建容器的用法
May 05 Golang
完美解决golang go get私有仓库的问题
May 05 Golang
Go 在 MongoDB 中常用查询与修改的操作
May 07 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
golang 实用库gotable的具体使用
Jul 01 Golang
Go中的条件语句Switch示例详解
Aug 23 Golang
Go语言并发编程 sync.Once
Oct 16 Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 Golang
Go 中的空白标识符下划线
Mar 25 Golang
Golang 遍历二叉树
Apr 19 Golang
Golang并发工具Singleflight
May 06 Golang
Go语言编译原理之源码调试
Aug 05 Golang
一文搞懂Golang 时间和日期相关函数
Go语言基础切片的创建及初始化示例详解
Nov 17 #Golang
Go语言基础map用法及示例详解
Nov 17 #Golang
Go语言基础函数基本用法及示例详解
Nov 17 #Golang
golang中的struct操作
Nov 11 #Golang
Go 语言中 20 个占位符的整理
Oct 16 #Golang
Golang中channel的原理解读(推荐)
Oct 16 #Golang
You might like
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
php开发环境配置记录
2011/01/14 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
XmlUtils JS操作XML工具类
2009/10/01 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
python中reload(module)的用法示例详解
2017/09/15 Python
python实现彩色图转换成灰度图
2019/01/15 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
Python多分支if语句的使用
2020/09/03 Python
python操作链表的示例代码
2020/09/27 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
校园安全广播稿范文
2014/09/25 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
java泛型通配符详解
2021/07/25 Java/Android
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python