【发布时间】:2009-10-15 12:48:29
【问题描述】:
我看到 Windows 中 C 代码和 python 代码之间的输出不同,试图获得相同的功能。 c 代码(类似于 unix shell 脚本)在“test.bat.output”中显示 TEST1 环境变量,其值为空字符串,而 python 代码删除此环境变量。
有没有办法让Python在环境表为空时不要删除环境变量?
C
#include <windows.h>
main()
{
DWORD dwRet;
char pszOldVal[1024] = "abc";
if(! SetEnvironmentVariable("TEST1", ""))
puts("Error\n");
// _putenv("TEST1=");
// GetEnvironmentVariable("TEST1", pszOldVal, dwRet);
system("cmd /c test.bat >test.bat.output");
}
Python
import os
os.environ['TEST1'] = ""
os.environ['TEST2'] = "karthik"
os.system("cmd /c test.bat > test.bat.output.python")
-卡提克
【问题讨论】:
-
请学习使用 Stack Overflow 代码格式化。
-
嗯。 S.Lott,你踩了我的编辑……编辑系统有点像那样。 :( 无论如何,是的。代码格式很重要。
-
出于好奇,具有空值的环境变量所需的语义是什么?
-
我一定会遵守代码格式化规则。感谢洛特指出。如果我没记错的话,在 Windows 中将变量设置为空字符串等同于 Linux 中的“未设置”。但是这种行为在 Windows 下的 C 和 python 中至少应该是一致的。
-
我回复了您对我的回答的评论。您可能会发现它很有帮助。
标签: python c environment-variables