- 在写某些程序时,需要将数据传入指定的目录中, 如果这时传输的不是相对路径, 则
os.path.join
无法进行拼接
- 所以我们写了一下代码
#!/usr/bin/env python3
import os
def two_abs_join(abs1, abs2):
"""
将 绝对路径将两个绝对路径拼接,
就是将第二个的开路径(windows 的 C, D,E ... Linux 的 /root 最前面的 / 删除掉)
:param abs1: 为主的路径
:param abs2: 被拼接的路径
:return: 拼接后的数值
"""
# 1. 格式化路径(将路径中的 \\ 改为 \)
abs2 = os.fspath(abs2)
# 2. 将路径文件拆分
abs2 = os.path.splitdrive(abs2)[1]
# 3. 去掉开头的 斜杠
abs2 = abs2.strip('\\/') or abs2
return os.path.abspath(os.path.join(abs1, abs2))
user_home = r'E:\ftp\home\alex'
get_file_path = r"C:/a/alex.py"
t = two_abs_join(user_home, get_file_path)
print(t)
user_home = r'/user/path/alex/'
get_file_path = r"/root/alex.py"
t1 = two_abs_join(user_home, get_file_path)
print(t1)
E:\ftp\home\alex\a/alex.py
/user/path/alex/root/alex.py