Python获取windows临时目录完整路径

2024-04-17 17:51:22 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个相对简单的问题,但由于某些原因,我无法找到通过python获取windows临时目录的完整路径的方法,也无法找到堆栈溢出社区中已经发布的类似请求

我正在使用tempfile.gettempdir()命令,但似乎无法捕获完整路径,它将返回简短版本:

'C:\Users\SVETLO~1\AppData\Local\Temp'

这总体上是可行的,但脚本的一个重要部分在后面没有,它需要完整的temp dir路径,即:

C:\Users\SvetlozarDraganov\AppData\Local\Temp\

有人知道如何使用python获取windows temp文件夹的完整绝对路径吗

提前谢谢。 斯维特

编辑-1:

我正在测试CMD的%fA建议,但由于某些原因,它不起作用。如果我使用%sA属性,它实际上会返回短路径版本:

CMD:for %A in ("C:\Users\SvetlozarDraganov\AppData\Local\Temp") do @echo %~sA

输出:C:\Users\SVETLO~1\AppData\Local\Temp

但是%fA属性不返回完整路径:

CMD:for %A in ("C:\Users\SVETLO~1\AppData\Local\Temp") do @echo %~fA

输出:C:\Users\SVETLO~1\AppData\Local\Temp


Tags: 路径版本cmd属性windowslocalsa原因
2条回答

我在python os模块中找到了一个现成的问题解决方案: https://docs.python.org/2/library/os.path.html#os.path.realpath

它返回长版本路径

谢谢大家

说到完全绝对路径,你已经有了它

“短版本”是VFAT之前存在的8.3文件名,而“完整路径”是“长文件名”或LFN。只要访问相关文件,它们就可以互换

在Windows命令提示符下,您可以使用parameter expansions从短到长再向后转换。请参见解决方案here以获取示例(在您的案例中,将答案中的%~sA替换为%~fA)。因此,您可以利用它并使用subprocess.run()调用命令来读取输出

我想不起来Python有一个内置函数来进行这种转换。但是Windows API有:您可能想看看this如何解决将LFN转换为短文件名的问题,在您的例子中,函数应该是GetLongPathName()

相关问题 更多 >

    热门问题