os.path.abspath 源码分析

os.path.abspath() 函数返回规范化后的绝对路径。当在Windows上时,它可能使用_win32API的_getfullpathname接口。如果路径为空,则会返回当前工作目录。在非Windows系统中,它将路径与当前工作目录合并。源码分析涉及isabs()、getcwdu()、getcwd()和join()等函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

os.path.abspath(path) 官方文档的介绍:

Return a normalized absolutized version ofthe pathname path. On most platforms, this is equivalent to callingthefunction normpath() asfollows:normpath(join(os.getcwd(), path)).

New in version 1.5.2.

这个函数会返回标准化的绝对路径。在大多数平台,它等同于normpath(join(os.getcwd(), path)).,这个后文的源码中会讲到

应用场景:

import os import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) import numpy as np from lightrag import LightRAG, QueryParam from lightrag.utils import EmbeddingFunc from lightrag.llm import openai_embedding from lightrag.llm import openai_complete_if_cache # 模型全局参数配置 根据自己的实际情况进行调整 OPENAI_API_BASE = "https://api.wlai.vip/v1" OPENAI_CHAT_API_KEY = "sk-dUWW1jzueJ4lrDixWaPsq7nnyN5bCucMzvldpNJwfJlIvAcC" OPENAI_CHAT_MODEL = "gpt-4o-mini" OPENAI_EMBEDDING_MODEL = "text-embedding-3-small" # 检测并创建文件夹 WORKING_DIR = "./output" if not os.path.exists(WORKING_DIR): os.mkdir(WORKING_DIR) # 自定义Chat模型 配置类OpenAI async def llm_model_func(prompt, system_prompt=None, history_messages=[], **kwargs) -> str: return await openai_complete_if_cache( model=OPENAI_CHAT_MODEL, prompt=prompt, system_prompt=system_prompt, history_messages=history_messages, api_key=OPENAI_CHAT_API_KEY, base_url=OPENAI_API_BASE, **kwargs ) # 自定义Embedding模型 配置类OpenAI async def embedding_func(texts: list[str]) -> np.ndarray: return await openai_embedding( texts, model=OPENAI_EMBEDDING_MODEL, api_key=OPENAI_CHAT_API_KEY, base_url=OPENAI_API_BASE, ) # 定义rag rag = LightRAG( working_dir=WORKING_DIR, llm_model_func=llm_model_func, embedding_func=EmbeddingFunc( embedding_dim=1536, max_token_size=8192, func=embedding_func ) ) # 构建索引 with open("./input/book.txt", "r", encoding="utf-8") as f: rag.insert(f.read()) # # local检索 # print( # rag.query("这个故事的核心主题是什么?", param=QueryParam(mode="local")) # ) # # global检索 # print( # rag.query("这个故事的核心主题是什么?", param=QueryParam(mode="global")) # ) # # hybrid检索 # print( # rag.query("这个故事的核心主题是什么?", param=QueryParam(mode="hybrid")) # ) # # naive检索 # print( # rag.query("这个故事的核心主题是什么?", param=QueryParam(mode="naive")) # ) 这里为什么我的 LightRAG, QueryParam标红?
03-09
import unittest import time import os,sys from unittest import TestSuite from report import HTMLTestRunner # 获取当前py文件路径地址,并进行路径分割(分割成目录路径和文件名称) dirname,filename=os.path.split(os.path.abspath(sys.argv[0])) print(dirname,filename) case_path = "./case/" result = dirname+"./report/" def Creatsuite(): #定义单元测试容器 testunit = unittest.TestSuite() #定搜索用例文件的方法 discover = unittest.defaultTestLoader.discover(case_path, pattern='test.py', top_level_dir=None)#test*.py #将测试用例加入测试容器中 for test_suite in discover: for casename in test_suite: testunit.addTest(casename) #print (testunit) return testunit test_case: TestSuite = Creatsuite() #获取系统当前时间 now = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) day = time.strftime('%Y-%m-%d', time.localtime(time.time())) #定义个报告存放路径,支持相对路径 tdresult = result + day if os.path.exists(tdresult): # 检验文件夹路径是否已经存在 filename = tdresult + "\\" + now + "_result.html" fp = open(filename, 'wb') #定义测试报告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='测试报告', description='执行情况:') #运行测试用例 runner.run(Creatsuite()) fp.close() #关闭报告文件 else: os.mkdir(tdresult) # 创建测试报告文件夹 filename = tdresult + "\\" + now + "_result.html" fp = open(filename, 'wb') #定义测试报告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='Selenium测试报告', description='执行情况:') #运行测试用例 runner.run(test_case) fp.close() #关闭报告文件 执行这段代码报错:Time Elapsed: 0:00:00.001002,如果修改
最新发布
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值