环境变量(os.path.expandvars)

时间:2014-05-12 12:05:02

标签: python variables global-variables environment-variables

import os
import time
import shutil
import subprocess

data_dir = os.path.expandvars ('C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data\Startup\delete.txt')

s=0
m=0
h=0
while s<=60:
    os.system('cls')
    print h, 'Hours', m, 'Minutes', s, 'Seconds'
    time.sleep(1)
    s+=1


    if s == 60:
        m+=1
        s=0
    elif m == 60:
        h+=1
        m=0
        s=0


    if s == 2:
        os.system("TASKKILL /F /IM chrome.exe")
        os.system("start textfile.txt")


    if s == 5:
        os.remove(data_dir)


    if s == 10:
        shutil.rmtree('C:\Users\SpanjerX\Downloads\Zips\Z.Current Project\deleteme')

嘿,我是编程的新手,我真的无法弄清楚为什么我的环境变量在这个脚本中不起作用如果我做一个打印文本测试我的用户名在路径中出现但在这个特定的脚本中我似乎无法让os.remove命令与%USERNAME%环境变量一起使用。

非常感谢任何帮助:)

编辑, 我正在尝试获取这部分代码:

import os
import time
import shutil  
import subprocess


data_dir = os.path.expandvars ('C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start   Menu\Programs\Data\Startup\delete.txt')


if s == 5:
    os.remove(data_dir)

删除此文件“('C:\ Users \%USERNAME%\ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Data \ Startup \ delete.txt')”

但变量%USERNAME%在这种情况下似乎不起作用,我不是百分之百确定原因。

编辑2,K我得到它的工作问题我有一个叫做疲劳的事情:P,我做得对,但如果路径名正确-_- O_O,我并不是很谨慎。但不是那么克里斯普罗斯给了我一个值得尊敬的答案,我赞扬他处理困了的西班牙人。

嘿BTW非常感谢你的帮助,抱歉我的问题是 所以...让我们说凌乱:P我觉得我有足够的能量 提出我的问题,但我想我不是100% 问了这个问题。非常感谢!

恭敬地,以极大的荣誉, Spanjer

1 个答案:

答案 0 :(得分:1)

我已经复制了你的程序的简化版本,它似乎工作正常:

import os
data_dir = os.path.expandvars ('C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Data\Startup\delete.txt')
print(data_dir)
os.remove(data_dir)

我建议您仔细检查上面产生的路径的打印输出,以确定文件的实际位置。

打印返回下面的输出,显示环境变量被正确解释:

  

C:\ Users \ Prosserc \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Data \ Startup \ delete.txt

如果文件在那里它继续并删除它,如果不是它会引发错误:

WindowsError: [Error 2] The system cannot find the file specified: 'C:\\Users\\Prosserc\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Data\\Startup\\delete.txt'

同样,错误消息中引用的路径应确认环境变量是否被正确解释。