Go语言 如何返回一级以获取存储在变量中的目录路径

4urapxun  于 2023-10-14  发布在  Go
关注(0)|答案(2)|浏览(168)

我试图回到Go Lang中存储变量的1级,我怎么能做到这一点?

  1. Origin:
  2. "/root/path"
  3. Expected:
  4. "/root/"

有一个功能可以自动完成吗?还是手动操作
谢谢.

hivapdat

hivapdat1#

父目录总是可以由..引用,因此您可以将其附加到路径中。
举例来说:

  1. p := "/root/path/"
  2. p = filepath.Clean(filepath.Join(p, ".."))
  3. fmt.Println(p)
  4. // "/root"

如果path本身不是一个目录(或者您确定它不会以路径分隔符结束),那么您可以使用Dir函数来获取包含目录。Dir* 返回path中除了最后一个元素之外的所有元素,通常是path的目录 *:

  1. p := "/root/path"
  2. p = filepath.Dir(p)
  3. fmt.Println(p)
  4. // "/root"
9rnv2umw

9rnv2umw2#

  1. import os
  2. def directory_back_levels(path='', steps=0):
  3. try:
  4. # check type
  5. if not isinstance(steps, int) or not isinstance(path, str):
  6. return ''
  7. # performance return path if steps 0
  8. if steps < 1:
  9. return path
  10. # loop towrads steps and use os.path.dirname to get the previous directory
  11. new_path = path
  12. for i in range(steps):
  13. new_path = os.path.dirname(new_path)
  14. return new_path
  15. except Exception as e:
  16. print("error in directory_back_levels")
  17. raise e
  18. Expected = directory_back_levels(path="/root/path", steps=1)
  19. print(Expected)
  20. notExpected = directory_back_levels(path="/root/static/images/new/image.png", steps=4)
  21. print(notExpected)

展开查看全部

相关问题