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如何去除多余空白字符(含制表符)
Apr 25 Golang
解决Golang中ResponseWriter的一个坑
Apr 27 Golang
基于Go Int转string几种方式性能测试
Apr 28 Golang
解决Goland 同一个package中函数互相调用的问题
May 06 Golang
使用golang编写一个并发工作队列
May 08 Golang
go web 预防跨站脚本的实现方式
Jun 11 Golang
go select编译期的优化处理逻辑使用场景分析
Jun 28 Golang
Go语言空白表示符_的实例用法
Jul 04 Golang
深入理解go slice结构
Sep 15 Golang
Go语言实现一个简单的并发聊天室的项目实战
Mar 18 Golang
golang连接MySQl使用sqlx库
Apr 14 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
thinkphp实现附件上传功能
2017/05/26 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
python+mysql实现教务管理系统
2019/02/20 Python
巴西网上药房:onofre
2016/11/21 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
国贸专业个人求职信分享
2013/12/04 职场文书
教学大赛获奖感言
2014/01/15 职场文书
人事专员的职责
2014/02/26 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
心理学培训心得体会
2016/01/22 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
导游词之长城八达岭
2019/09/24 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
深入理解Pytorch微调torchvision模型
2021/11/11 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB