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 相关文章推荐
一文读懂go中semaphore(信号量)源码
Apr 03 Golang
基于go interface{}==nil 的几种坑及原理分析
Apr 24 Golang
go语言中切片与内存复制 memcpy 的实现操作
Apr 27 Golang
golang在GRPC中设置client的超时时间
Apr 27 Golang
go 原生http web 服务跨域restful api的写法介绍
Apr 27 Golang
Go使用协程交替打印字符
Apr 29 Golang
Go timer如何调度
Jun 09 Golang
使用GO语言实现Mysql数据库CURD的简单示例
Aug 07 Golang
golang中的struct操作
Nov 11 Golang
Golang 入门 之url 包
May 04 Golang
Go微服务项目配置文件的定义和读取示例详解
Jun 21 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
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
python多线程扫描端口示例
2014/01/16 Python
web.py中调用文件夹内模板的方法
2014/08/26 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Python文件操作函数用法实例详解
2019/12/24 Python
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
装修五一活动策划案
2014/01/23 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
经典团队口号
2014/06/06 职场文书
债务纠纷委托书
2014/08/30 职场文书
晚会闭幕词
2015/01/28 职场文书
Minikube搭建Kubernetes集群
2022/03/31 Servers
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers