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 定时任务方面time.Sleep和time.Tick的优劣对比分析
May 05 Golang
Go遍历struct,map,slice的实现
Jun 13 Golang
详解Go语言Slice作为函数参数的使用
Jul 02 Golang
Go语言应该什么情况使用指针
Jul 25 Golang
Golang 并发下的问题定位及解决方案
Mar 16 Golang
如何解决goland,idea全局搜索快捷键失效问题
Apr 03 Golang
Go语言的协程上下文的几个方法和用法
Apr 11 Golang
Golang数据类型和相互转换
Apr 12 Golang
Go获取两个时区的时间差
Apr 20 Golang
Golang map映射的用法
Apr 22 Golang
深入理解 Golang 的字符串
May 04 Golang
详解Go语言中配置文件使用与日志配置
Jun 01 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
初识Laravel
2014/10/30 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
浅析Python数据处理
2018/05/02 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
Python self用法详解
2020/11/28 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
网站域名和主机:Domain.com
2019/04/01 全球购物
如何强制垃圾回收
2015/10/06 面试题
企业宣传工作方案
2014/06/02 职场文书
早读课迟到检讨书
2014/09/25 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript