Python 中的 %windir%?
我该怎么做类似这样的事情呢
if sys.argv[0] != '%windir%\\blabla.exe'
我完全没有成功过
5 个回答
if sys.argv[0] != '%windir%\\blabla.exe'
你想在这里做什么呢?
argv[0]
通常是你正在运行的脚本的文件名。除非你使用某种打包工具把自己编译成一个 EXE 文件,否则它不太可能是 blabla.exe
。如果你想查看传递给脚本的第一个参数,可以看 sys.argv[1]
。
另外,当你在控制台使用 %EnvironmentVariable%
时,Windows 的命令行会把变量名替换成它的内容。所以当你输入 myscript.py %windir%\blabla.exe
时,Windows 会把它替换成 myscript.py C:\Windows\blabla.exe
(或者类似的路径),然后你的脚本才会运行,而你的比较会失败,因为变量名已经不在了。
你可以使用 os.path.expandvars
来对你自己的字符串进行同样的替换(或者直接读取 os.environ
)。你可能还想把路径转换为绝对路径,这样就可以比较实际的有效路径,而不必担心相对路径的问题:
blapath= os.path.expandvars(r'%WinDir%\blabla.exe')
if os.path.abspath(sys.argv[1])==os.path.abspath(blapath):
...
在这种情况下,你也可以考虑使用 os.path.normcase
来处理这两个路径,以便适应 Windows 对大小写不敏感的特性。
这段代码应该能帮助你了解如何获取Windows的位置信息:
>>> import os
>>> os.environ['windir']
'C:\\Windows'
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续运行。
举个例子,假设你在写一个游戏,想让角色在分数达到一定值时才能升级。你可以设置一个条件:如果分数大于或等于100,那么角色就可以升级。否则,角色就不能升级。
这种条件判断在编程中非常常见,它可以帮助我们控制程序的行为,让程序更智能。
总之,条件判断就像是给程序设定了一些“门槛”,只有当这些“门槛”被跨越时,程序才会继续执行后面的操作。
import os
if sys.argv[0] != os.path.join(os.environ['WINDIR'],'blalah.exe'):