【问题标题】:Python join directory pathsPython 加入目录路径
【发布时间】:2021-10-19 10:24:33
【问题描述】:

我对 os.path.join() 有疑问,因为它从不加入完整路径。 代码是:

get_base_dir = (os.getenv('BUILD_DIRECTORY'))
base_dir_path = pathlib.Path(get_base_dir)
print (base_dir_path ) # output is: F:\file\temp\ - which is correct

s_dir = '/sw/folder1/folder2/'
s_dir_path = pathlib.Path(s_dir)
print (s_dir_path) # output is: \sw\folder1\folder2\


full_path = os.path.join(base_dir_path, s_dir_path)

print (full_path)   # output is: F:\\sw\\folder1'\\folder2 instead of F:\\file\\temp\\sw\\folder1'\\folder2

有人知道出了什么问题吗?

【问题讨论】:

  • 你能添加print(s_dir_path)的输出吗?
  • 确定现在更新,输出应该是这样
  • 请解释您的问题与azure 的关系,因为您确实使用了这样的标签
  • 我的错,我忘了删除那个标签

标签: python path pathlib os.path


【解决方案1】:

此行为符合os.path.join docs 的规定

智能地加入一个或多个路径组件。返回值为 path 和 *paths 的任何成员的连接正好是一个 除最后一个以外的每个非空部分之后的目录分隔符, 这意味着如果最后一部分,结果只会以分隔符结尾 是空的。 如果一个组件是绝对路径,所有之前的组件 被丢弃并从绝对路径继续加入 组件。

(我加了强调)

【讨论】:

  • 不知道是不是看懂了,这样不行吗?
  • 这是因为你在 s_dir 上有一个绝对路径。您必须删除第一个斜线。
猜你喜欢
  • 1970-01-01
  • 2018-04-18
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
相关资源
最近更新 更多