呼唤路径中的环境变量

时间:2013-07-28 12:03:06

标签: python environment-variables

import os

print "C:\Users\print os.environ['USERNAME']\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

我尝试做的基础是使用" os"模块使用USERNAME变量填写目录路径,例如下面的

"C:\Users\USER Name HERE\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

"USER Name HERE"是路径的一部分,我希望将其替换为os变量" USERNAME"又名os.environ['USERNAME']

基本上我希望我的文件能够找到当前用户名的用户名,以便它可以相应地改变它的路径。

PS。这个命令在.bat文件的xD中更容易做,这就是我在.bat文件中执行此操作的方法

SET USERNAME

:: Create new directory
md "C:\ProgramData\Data"   

COPY "C:\Users\%USERNAME%\Desktop\DxAutoPackage\Win86\data\UserData" "C:\ProgramData\Data"
COPY "C:\Users\%USERNAME%\Desktop\DxAutoPackage\Win86\system32.lnk" 

不确定这里是否有人对蝙蝠文件了解太多但它可能有助于使我的问题更加明确:P

无论如何,任何帮助都会非常感激。

编辑:好吧我以为我已经开始了,但我很遗憾,这是我试图让它进入的脚本部分。为了超越自己(第一篇文章)而努力

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import Encoders
import os

msg = MIMEMultipart()
msg['From'] = 'FakeEmail@hotmail.com'
msg['To'] = 'FakeEmail@hotmail.com'
msg['Subject'] = 'simple hotmail email'
message = '%USERNAME%'
msg.attach(MIMEText(message))

正如您可能会看到脚本的消息部分是我尝试使用%USERNAME%进行编辑

编辑:我如何将相同的变量添加到如下格式的Path格式:

如何将相同的变量添加到这样的脚本(主要是路径格式)

import os
os.makedirs("C:\Users\'USERNAME'\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Data)

1 个答案:

答案 0 :(得分:2)

使用os.path.expandvars

>>> import os
>>> print os.path.expandvars(r"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
C:\Users\falsetru\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

或者您可以使用os.environ + str.format

>>> print r"C:\Users\{0[USERNAME]}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup".format(os.environ)
C:\Users\falsetru\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

修改

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import Encoders
import os

msg = MIMEMultipart()
msg['From'] = 'FakeEmail@hotmail.com'
msg['To'] = 'FakeEmail@hotmail.com'
msg['Subject'] = 'simple hotmail email'
message = os.environ['USERNAME']
#message = os.path.expandvars('%USERNAME%') # alternative
msg.attach(MIMEText(message))