“查询窗口”;CD";python内部的动态环境变量
“CD”显然是windows中的一个“动态”环境变量。在python内部,它不会出现在os.Enviro字典中;当使用os.getenv()查询时,它也不会到达。有没有从python内部访问此环境变量的方法 在别人告诉我使用os.getcwd()之前,请理解os.getcwd()不遵循软链接。在linux和mac上,我可以访问PWD环境变量以获取当前目录,包括软链接目录。如果可能的话,我也希望在windows上做类似的事情“查询窗口”;CD";python内部的动态环境变量,python,windows,environment-variables,Python,Windows,Environment Variables,“CD”显然是windows中的一个“动态”环境变量。在python内部,它不会出现在os.Enviro字典中;当使用os.getenv()查询时,它也不会到达。有没有从python内部访问此环境变量的方法 在别人告诉我使用os.getcwd()之前,请理解os.getcwd()不遵循软链接。在linux和mac上,我可以访问PWD环境变量以获取当前目录,包括软链接目录。如果可能的话,我也希望在windows上做类似的事情 谢谢。Windows上进程的工作目录不是环境变量。它是通过调用Win32
谢谢。Windows上进程的工作目录不是环境变量。它是通过调用Win32 API函数读取的。在Python中,由
os.getcwd()
包装
Windows上没有名为CD
的标准环境变量。命令解释器cmd.exe
确实创建了名为CD
的环境变量的假象,但它是cmd.exe
的私有变量。因为您的代码在Python可执行文件中运行,所以这与此无关。请注意,当您在cmd.exe
中执行set
命令时,没有列出CD
变量
很容易证实我说的是真的。编写一个简单的C程序,调用GetEnvironmentVariable
传递“CD”
。您将看到没有这样的变量
即使您碰巧能够侵入启动Python
可执行文件的cmd.exe
进程,这对您有什么好处。Python进程有一个不同于cmd.exe
的工作目录。谁说你的Python进程甚至是从cmd.exe
开始的
我不太确定您的困惑在哪里,但是在Python中获取工作目录的方法是调用
os.getcwd()
。然后,如果你想解析符号链接,你必须自己去做。FWIW,在cmd.exe中执行echo%CD%
会打印看似CWD的内容,但我猜它是内置在shell中的,不是一个真正的环境变量。@aya这是一个cmd.exe的特殊功能。@Mayur你在寻找更多信息吗?通过“软链接”您的意思是“符号链接”、“连接点”还是其他什么?echo%CD%
显示的内容与我在CD
命令中输入的内容没有任何不同,即使我指定的路径中有符号链接(例如文档和设置
是指向用户的符号链接)cd
似乎根本不支持Windows快捷方式(.lnk
文件)。你到底想在这里实现什么?@kindall嗯,在Vista上,文档和设置
是一个NTFS连接点,与符号链接不同。前者在dir
中显示为
,后者显示为
或
。但是我看不到echo%CD%
的返回值与Python中运行os.getcwd()
的返回值之间有任何区别。“软链接”-是的,“符号链接”。我们将linux文件服务器映射到windows机器上的特定驱动器。文件服务器在部署时将使用符号链接到目录结构。从反馈来看,CD听起来不像是windows版的PWD。@MayurPatel Linux?那完全不同。如果您正在通过SMB映射linux符号链接。。。好。。。这取决于你是怎么做的。你必须更具体地说明你的设置,以及你想要达到的目标。