Hi,
Habe die obigen Infos mal zu einer Funktion zusammengeschlossen und noch etwas verbessert.
Falls z.B. eine Pfadname zwei Prozentzeichen enthält, diese Kombination aber keine Variable darstellt, werden diese nun bei meiner Funktion richtigerweise ignoriert. Dadurch wird vermieden, das sie durch "os.path.expandvars" falsch ausgewertet werden.
Hier die Funktion:
Code: Alles auswählen
def ExpandOsVars(name):
"""
Return the argument with environment variables (os.environ) expanded.
Substrings of the form "%var%", "$var" or "${var}" are replaced by the
value of environment variable name.
"""
def testvar(matchobj):
if matchobj.group(1) in os.environ:
return "$" + matchobj.group(1)
else:
return matchobj.group(0)
return os.path.expandvars(re.sub('%(?P<name>\w+)%', testvar, name))