在各种路径类型中使用环境变量

时间:2013-07-30 18:34:35

标签: python python-2.7 environment-variables

我如何使用相同的方法在底部代码的代码顶部使用USERNAME变量,我只是觉得我对python中的变量语法没有基础知识:

码:1

msg['Subject'] = os.environ['USERNAME'] #This is the working method i use to call upon    the USER NAME Variable.

码:2

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

#This is the path type that i don't know how to use the Environmental Variable's With, this would be my best guess at how this would be done.

任何帮助都会受到极大的赞赏

很多这些东西对我来说都是新的,所以对我来说很陌生^ _ ^

没有编辑的默认代码:

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

问题: 所以这两种方法运作得非常好:

import os
os.mkdir(os.path.expandvars("C:\\users\\%username%\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Data"))


import os
username = os.environ['USERNAME']
os.mkdirs("C:\Users\%s\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Data" %    username)

但我仍然有点困惑如何使用需要2路径的变量,比如Copy,这是一个例子:

copyfile(src, dst)

Or 

Copy(Src, dst)

任何额外的帮助都会很棒 Thannks

ps.i我真的很好奇我应该研究什么来开始理解脚本的结构/规则的拇指,当它来到你怀疑它们的格式时。

2 个答案:

答案 0 :(得分:2)

首先尝试抓取用户名,然后创建目录,如下所示:

import os

username = os.environ['USERNAME']
os.mkdirs("C:\Users\%s\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Data" % username)

如果您希望访问用户的“开始”菜单,则可能需要尝试使用%APPDATA%以获得更好的便携性:

os.path.join(os.environ['APPDATA'], "Microsoft\Windows\StartMenu\Programs\Data")

答案 1 :(得分:2)

在将字符串传递给os.mkdiros.makedirs之前,您需要在字符串中展开它们。您要使用的功能是os.path.expandvars。此外,窗口中的环境变量使用%字符分隔,而不是'字符。

所以你的代码应该更像这样:

import os
os.mkdir(os.path.expandvars("C:\\users\\%username%\\rest\\of\\path"))