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语言map与string的相互转换的实现
Apr 07 Golang
Go语言操作数据库及其常规操作的示例代码
Apr 21 Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
Go语言中break label与goto label的区别
Apr 28 Golang
解决golang在import自己的包报错的问题
Apr 29 Golang
解决go在函数退出后子协程的退出问题
Apr 30 Golang
go类型转换及与C的类型转换方式
May 05 Golang
go语言中fallthrough的用法说明
May 06 Golang
Go语言空白表示符_的实例用法
Jul 04 Golang
详解Golang如何优雅的终止一个服务
Mar 21 Golang
Golang流模式之grpc的四种数据流
Apr 13 Golang
Go web入门Go pongo2模板引擎
May 20 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 可阅读随机字符串代码
2010/05/26 PHP
php基础学习之变量的使用
2011/06/09 PHP
深入php list()函数的详解
2013/06/05 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Python ldap实现登录实例代码
2016/09/30 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python获取代理IP的实例分享
2018/05/07 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
个人投资计划书
2014/05/01 职场文书
国王的演讲观后感
2015/06/03 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
2019年工作总结范文
2019/05/21 职场文书
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js