我的同事在安装Python时遇到问题。运行下面的代码时,从'C:\my\folder\'
返回'C:\'
而不是当前工作目录。当我或其他任何人在我们的系统上运行脚本时,我们得到'C:\my\folder\'
。
我们假设某些全局设置必然导致问题,所以我让这个人卸载Python,删除本地Python2.7文件夹,清理注册表并重新安装Python,但它仍然无法正常工作。 / p>
注意:我们有大量遗留脚本,因此修改所有这些脚本以使用子流程是不切实际的。 :(
有什么想法吗?
环境:Windows XP,Python 2.7
import os
#
# This test script demonstrates issue on the users computer when python invokes
# a subshell via the standard os.system() call.
#
print "This is what python thinks the current working directory is..."
print os.getcwd()
print
print
print "but when i execute a command *from* python, this is what i get for the current working directory"
os.system('echo %cd%')
raw_input()
答案 0 :(得分:4)
你也可以尝试这样的事情
os.chdir("C:\\to\\my\\folder")
print os.system("echo %CD%")
raw_input()
也可以使用不同的方法来获取当前的工作目录
cur_dir = os.path.abspath(".")
答案 1 :(得分:2)
os.getcwd()
无法保证在调用脚本时获取脚本的位置。您的同事可能以不同的方式调用脚本,或者他的计算机(由于某种原因)以不同的方式处理当前的工作目录。
要获取实际的脚本位置,您应该使用以下内容:
import os
os.path.dirname(os.path.realpath(__file__))
作为一个例子,我在同一个脚本中写了getcwd
和上面一行,并从C:\
运行。
结果:
C:\>python C:\Users\pies\Desktop\test.py
C:\Users\pies\Desktop
C:\
这取决于您对此脚本的真正目的是什么,您是否确实需要当前工作目录,或仅仅是当前脚本目录。如果您从脚本调用脚本然后使用此调用,则此调用将返回一个不同的目录。