将目录更改为 Python 脚本的目录 [重复]

Posted

技术标签:

【中文标题】将目录更改为 Python 脚本的目录 [重复]【英文标题】:Change directory to the directory of a Python script [duplicate] 【发布时间】:2010-10-05 07:34:52 【问题描述】:

如何将目录更改为包含我的 python 脚本的目录?到目前为止,我发现我应该使用os.chdirsys.argv[0]。我确信有更好的方法来编写我自己的函数来解析 argv[0]。

【问题讨论】:

你可以直接复制粘贴这个:import os; os.chdir(os.path.dirname(__file__)) How do I change directory (cd) in Python?的可能重复 【参考方案1】:
os.chdir(os.path.dirname(__file__))

【讨论】:

出于某种原因 file 是 C:\dev\Python25\Lib\idlelib 所以用 argv[0] 快速替换解决了它。 +1 并勾选标记 另外,根据平台,您可能希望在 os.path.dirname 的结果上使用 os.path.abspath 以确保任何符号链接或其他文件系统重定向得到正确扩展。【参考方案2】:

os.chdir(os.path.dirname(os.path.abspath(__file__))) 应该这样做。

如果脚本从它所在的目录运行,os.chdir(os.path.dirname(__file__)) 将不起作用。

【讨论】:

os.chdir(os.path.dirname(__file__) or '.')也可以。当__file__ 没有以./ 为前缀时,就会出现目录内问题。 os.path.dirname 在这种情况下返回一个空字符串。 很好的观察@George :)【参考方案3】:

有时__file__没有定义,这种情况你可以试试sys.path[0]

【讨论】:

@Miki - __file__ 什么时候没有定义? @RobBednark: python3.3 -c "print(__file__)" @JanusTroelsen:Python 2.7 也是如此。【参考方案4】:

在 Windows 操作系统上,如果你调用类似 python somefile.py 这个 os.chdir(os.path.dirname(__file__)) 会抛出一个 WindowsError。但这应该适用于所有情况:

import os
absFilePath = os.path.abspath(__file__)
os.chdir( os.path.dirname(absFilePath) )

【讨论】:

以上是关于将目录更改为 Python 脚本的目录 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将终端更改为 Visual Studio 代码中的当前目录? (热键)[重复]

将批处理脚本中的目录更改为没有名称的文件夹

将CWD更改为文件的目录

Python 脚本从主目录运行

如何将 bash 脚本代码更改为 Python [关闭]

从路径“文件”下载保存到“其他目录”python脚本问题