Go+ 文件路径创建和解析教程(4.17)

Posted Data-Mining

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go+ 文件路径创建和解析教程(4.17)相关的知识,希望对你有一定的参考价值。

目录

Go+ 概述

正文

导入包

Join 方法

Dir 方法

Base 方法

IsAbs 方法

Ext 方法

Rel 方法 


Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

正文

Go+ 提供很多文件路径创建和解析的方法,今天我们就来了解一下这方面的一些内容。

导入包

Go+ 在创建和解析文件路径时,一般会使用的工具库是 path/filepath 包,导入方式如下:

import (
    "path/filepath"
)

Join 方法

Join 方法可以接受若干个路径参数完成拼接,形成一个完整的路径地址,示例代码如下:

import (
    "path/filepath"
)

p1 := filepath.Join("dir1", "test.txt")
println("拼接路径 p1:", p1)

p2 := filepath.Join("dir1", "dir2", "dir3", "filename")
println("拼接路径 p2:", p2)

执行结果:

拼接路径 p1: dir1/test.txt
拼接路径 p2: dir1/dir2/dir3/filename

亲自试一试!

在创建文件路径时尽量使用 Join 方法,而不是手动拼接斜杆和反斜杆路径。合理使用 Join 方法还有很多别的好处,比如会自动删除多余的分隔符,起到规范文件路径的作用,示例代码如下:

import (
    "path/filepath"
)

p1 := filepath.Join("dir1///", "filename")
println("路径规范:", p1)

p2 := filepath.Join("dir1//dir2//", "filename")
println("路径规范:", p2)

p3 := filepath.Join("dir1/../dir1/../dir2", "filename")
println("路径规范:", p3)

执行结果:

路径规范: dir1/filename
路径规范: dir1/dir2/filename
路径规范: dir2/filename

亲自试一试!

Dir 方法

Dir 方法可以用于分割目录和文件的路径,返回文件所属目录的路径。

示例代码:

import (
    "path/filepath"
)

p := filepath.Join("dir1/dir2", "filename")
println("完整路径:", p)

println("Dir(p):", filepath.Dir(p))

执行结果:

完整路径: dir1/dir2/filename
Dir(p): dir1/dir2

亲自试一试!

Base 方法

Base 方法可以用于分割目录和文件的路径,返回文件名称。

示例代码:

import (
    "path/filepath"
)

p := filepath.Join("dir1/dir2", "filename")
println("完整路径:", p)

println("Base(p):", filepath.Base(p))

执行结果:

完整路径: dir1/dir2/filename
Base(p): filename

亲自试一试!

IsAbs 方法

IsAbs 方法可以判断当前路径是否为绝对路径,示例代码如下:

import (
    "path/filepath"
)

println("dir/file 是绝对路径:", filepath.IsAbs("dir/file"))
println("/dir/file 是绝对路径:", filepath.IsAbs("/dir/file"))

执行结果:

dir/file 是绝对路径: false
/dir/file 是绝对路径: true

亲自试一试! 

Ext 方法

Ext 方法可以获取文件后缀,注意前提是有点号分离,否则返回空,示例代码如下:

import (
    "path/filepath"
)

file1 := "config.json"
ext1 := filepath.Ext(file1)
println("文件后缀:", ext1)

file2 := "filename"
ext2 := filepath.Ext(file2)
println("文件后缀:", ext2)

执行结果:

文件后缀: .json
文件后缀: 

亲自试一试!

Rel 方法 

Rel 方法可以用来查找基础路径和目标路径之间的相对路径。如果无法使目标路径相对于基准路径进行转换,则返回错误。示例代码如下:

import (
    "path/filepath"
)

rel, err := filepath.Rel("a/b", "a/b/t/file")
if err != nil 
    panic(err)

println("相对路径:", rel)

// 下面的例子会报错
rel, err = filepath.Rel("a/b", "/c/t/file")
if err != nil 
    panic(err)

println("相对路径:", rel)

执行结果:

相对路径: t/file
panic: Rel: can't make /c/t/file relative to a/b

goroutine 1 [running]:
main.main()
	/tmp/sandbox046661581/main.gop:13 +0x205

亲自试一试!

以上是关于Go+ 文件路径创建和解析教程(4.17)的主要内容,如果未能解决你的问题,请参考以下文章

Go 系列教程 —— 17. 方法

Go——从文件路径解析解析GAVC坐标解决方案

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

Go命令教程3. go install

如何使用 Go 提供动态创建的 URL 路径?

Go+ 时间格式化和解析方法教程(4.9)