Python程序需要Notepad ++中的完整路径

时间:2014-11-25 01:47:43

标签: python file-io cmd notepad++

这不是一个重大问题,而是我在上课时遇到的烦恼。我将Notepad ++设置为直接从Notepad ++运行Python代码但是我在注意到尝试访问文件时已经注意到我必须使用文件的完整路径,即使源文本文件与Python程序位于同一文件夹中正在运行。

但是,当通过cmd运行我的Python程序时,我只需输入整个路径中的特定文件名。

有没有人简短回答为什么会这样或者可能如何重新配置​​Notepad ++?

提前致谢。

2 个答案:

答案 0 :(得分:1)

问题是您的代码假设current working directory与脚本目录相同。事实并非如此。当然,如果您在cmd窗口中,并且在运行它之前cd到脚本目录,则确实如此。

如果您不想依赖它(例如,因为您希望能够从Notepad ++或直接从Explorer运行脚本),您要做的是显式使用脚本目录。例如:

import os
import sys

scriptdir = os.path.abspath(os.path.dirname(sys.argv[0]))

with open(os.path.join(scriptdir, 'myfile.txt')) as f:
    # etc.

如果您的脚本在很多地方引用了大量文件,那么显式设置工作目录可能会更好。只需添加一行:

os.chdir(scriptdir)

除了快速和脏脚本之外的任何内容,通常最好构建一个可安装的包并使用pkg_resources来访问数据文件。有关详细信息,请阅读Tutorial on Packaging and Distributing Projects。但只要你只是在破解脚本来帮助你维护你的特定系统,scriptdir解决方案是可行的。

答案 1 :(得分:1)

在用于启动Notepad ++的快捷方式的属性中,您可以将其工作目录更改为您更习惯从Python开始的目录。您也可以使用相应的os.chdir()命令开始您的python程序。