是否有一个Python库采用Windows路径并用环境变量替换扩展的环境变量?
例如:
C:\Users\Username\Documents\Text.txt -> %USERPROFILE%\Documents\Text.txt
C:\Windows\System32\cmd.exe -> %WINDIR%\System32\cmd.exe
C:\Program Files\Program\Program.exe -> %PROGRAMFILES%\Program\Program.exe
解释的最佳方式是获得与
相反的功能os.path.expandvars('some path with environment variables')
也需要支持不同的语言。
C:\Archivos de programa\Progra\Program.exe -> %PROGRAMFILES%\Program\Program.exe
答案 0 :(得分:1)
这是一个非常重要的问题,因为环境变量可能与字符串的某些部分匹配(例如:PROCESSOR_LEVEL
通常是一个数字,所以你应该避免它)。为了确保最佳效率,我会:
import os
my_string = os.path.normpath(r"D:\Users\JOTD\AppData\Roaming\Adobe\Flash Player")
for k,v in sorted(os.environ.items(),key=lambda x:len(x[1]),reverse=True):
my_new_string = my_string.replace(v+os.sep,"%{}%{}".format(k,os.sep))
if my_string != my_new_string:
break
my_string = my_new_string
print(my_new_string)