go语言读取csv文件时read xxx.csv: Access is denied.

go语言读取文件的os.OpenFile()函数

os.OpenFile(“example.txt”,os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

os.OpenFile("example.txt",os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

os.OpenFile 函数的第二个参数是一个整数,用于指定文件的打开模式。这个参数决定了文件在打开时的行为,例如读取、写入、追加等。以下是常见的打开模式:

os.O_RDONLY:只读。文件以只读模式打开,不可写入。

os.O_WRONLY:只写。文件以只写模式打开,不可读取。

os.O_RDWR:读写。文件以可读写模式打开。

os.O_APPEND:追加。文件以追加模式打开,写入数据时会追加到文件末尾。

os.O_CREATE:创建。如果文件不存在,会创建一个新文件。

os.O_TRUNC:截断。如果文件已经存在,会截断文件内容。

这些参数可以通过按位 OR 运算来组合,以实现不同的打开模式。例如,os.O_RDWR | os.O_CREATE 表示以读写模式打开文件,如果文件不存在则创建它。

如果我现在有一个aba.csv的文件,怎么读取其中的数据?

func main() {

	directory, err := os.Getwd()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println("当前工作目录是:", directory)

	f, err := os.OpenFile("./aba.csv", os.O_RDWR, 0644)
	if err != nil {
		fmt.Println("打开csv文件失败:", err)
		return
	}
	defer f.Close()


	//读数据
	reader := csv.NewReader(f)
	//Comma是字段分隔符
	records, err := reader.ReadAll()
	if err != nil {
		fmt.Println("读取数据错误:", err)
		return
	}
	//读取数据出来,records是文件record中的行,field是数据行records中的第几列
	for _, record := range records {
		for _, field := range record {
			fmt.Print(field, "  ")
		}
		//每一行打印完后需要换行
		fmt.Println()
	}
}

输出结果

当前工作目录是: D:\study\niuma
X  Y  RSSI  Label  
2  4  -23  6       
5  1  -34  4       
2  4  -68  5

主要是os.OpenFile()函数的第二个参数要写os.O_RDWR

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值