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语言使用select{}阻塞main函数介绍
Apr 25 Golang
使用Golang的channel交叉打印两个数组的操作
Apr 29 Golang
完美解决golang go get私有仓库的问题
May 05 Golang
Go遍历struct,map,slice的实现
Jun 13 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
Go语言应该什么情况使用指针
Jul 25 Golang
简单聊聊Golang中defer预计算参数
Mar 25 Golang
Go语言grpc和protobuf
Apr 13 Golang
golang用type-switch判断interface的实际存储类型
Apr 14 Golang
Golang 实现WebSockets
Apr 24 Golang
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
Jun 21 Golang
Python测试框架pytest核心库pluggy详解
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
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
python发送邮件接收邮件示例分享
2014/01/21 Python
python中set()函数简介及实例解析
2018/01/09 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
员工升职自荐信
2015/03/27 职场文书
春晚观后感
2015/06/11 职场文书
创业计划书之寿司
2019/07/19 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python