golang 去掉后缀的文件名
时间: 2023-05-27 11:02:45 浏览: 106
在 Golang 中,可以使用 path 包中的函数将文件名和后缀分离。具体方法如下:
```go
import "path"
func main() {
fileName := "example.txt"
name := path.Base(fileName) // 获取文件名
ext := path.Ext(name) // 获取文件后缀
fmt.Println(name, ext)
newName := name[:len(name)-len(ext)] // 去掉后缀
fmt.Println(newName)
}
```
注:以上代码未考虑文件名中含有多个 “.” 的情况,如文件名为 “example.test.txt”。如果需要支持这种情况,可以使用 strings.LastIndex 方法获取最后一个 “.” 的位置,再进行分离。
相关问题
golang 去除json字符串转义
在 golang 中,将字符串转换为 json 格式时,会自动将一些特殊字符添加反斜杠进行转义,如双引号、反斜杠、换行符等。这样做是为了避免这些特殊字符对 json 格式的解析产生干扰。
但有些时候,我们需要将这些转义字符去掉,得到原始的字符串内容。这时可以使用 strconv 包中的 Unquote() 函数。
Unquote() 函数会将字符串中表示转义字符的反斜杠去除,并将实际的字符转义为其对应的 ASCII 字符。如果字符串不是以双引号包裹的,则会返回一个错误。
示例代码如下:
```
package main
import (
"fmt"
"strconv"
)
func main() {
jsonStr := `{"name":"golang","version":"1.16"}`
fmt.Println(jsonStr)
unquotedStr, err := strconv.Unquote(jsonStr)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(unquotedStr)
}
```
输出结果如下:
```
{"name":"golang","version":"1.16"}
{name:golang,version:1.16}
```
可以看到,经过 Unquote() 处理后,字符串中的双引号已经去掉了,而转义的字符也被正确还原。
继续 golang去掉小时前的0
要在 Golang 中去掉小时前的前导零,您可以使用 `time.Format` 函数和特定的时间格式字符串。以下是一个示例代码片段,展示了如何实现这一点:
```go
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now.Format("2006-01-02 3:04:05 PM"))
}
```
在上面的示例中,我们使用了时间格式字符串"2006-01-02 3:04:05 PM"。其中,"3" 表示小时(12 小时制,无前导零)。这样就能实现去掉小时前的前导零的效果。
希望能对您有所帮助!如果您有任何其他问题,请随时提问。