Go+ 文件路径创建和解析教程(4.17)
Posted Data-Mining
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go+ 文件路径创建和解析教程(4.17)相关的知识,希望对你有一定的参考价值。
目录
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)的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段