我有什么:
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
filepath = 'files/one.txt'
request_path = os.path.join(BASE_DIR, filepath)
print(request_path, filepath, BASE_DIR)
它打印
/files/one.txt /files/one.txt /home/pavel/Dev/AiPOSiZI/Lab_1
这意味着路径未联接。
但
os.path.join('/home/pavel/Dev/AiPOSiZI/Lab_1/', 'files/one.txt')
(我已经在/家/的末尾添加了/...并从/files/... 的开头删除/效果很好。
我可以手动添加和删除路径/,但我想知道是否有更优雅的方式来加入它们
在python 3.8.0上,它似乎按预期工作。
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
filepath = 'files/one.txt'
request_path = os.path.join(BASE_DIR, filepath)
print(request_path, filepath, BASE_DIR)
$ python -V
Python 3.8.0
$ python /tmp/a.py
/tmp/files/one.txt files/one.txt /tmp
你可以在python中使用f-string(参见文档(。
在您的情况下:
request_path = f"{BASE_DIR}/{filepath}"
请注意,您需要在文件位置变量(BASE_DIR和文件路径(之间加一个斜杠">/"才能正确完成完整的文件位置。
希望这有帮助!