【问题标题】:Environmental Variables (os.path.expandvars)环境变量(os.path.expandvars)
【发布时间】:2014-05-12 12:05:02
【问题描述】:
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% 在这种情况下似乎不起作用,我不是 100% 确定原因。

编辑 2,K 我得到了它,我遇到的问题是疲劳:P,我做得对,但如果路径名称正确,我就不够谨慎 -_- O_O。但是,ChrisProsser 给了我一个体面的答案,我赞扬他处理昏昏欲睡的 Spanjer。

嘿,顺便说一句,非常感谢您的帮助,抱歉我的问题是 所以......让我们说凌乱:P我想我有足够的精力去 提出我的问题,但我认为我不是 100% 在那里 问了这个问题。非常感谢!

谨以崇高的敬意, 扳手

【问题讨论】:

  • 我不完全清楚你卡在哪一部分。是如何将文件路径获取到基于环境变量的变量中?
  • 我在上面添加了一些编辑,Ty 寻求帮助

标签: python variables global-variables environment-variables


【解决方案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'

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

【讨论】:

    猜你喜欢
    • 2016-10-14
    • 1970-01-01
    • 2014-09-30
    • 2020-12-07
    • 1970-01-01
    • 2014-12-17
    • 2019-05-15
    相关资源
    最近更新 更多