我的桌面上有两个文件:
print 'Hello world'
foo = open ('sotest.py', 'r')
我正在使用Notepad ++运行Python,如下所示(来自Use IDLE to launch script using the full file path):
C:\Program Files (x86)\Python27\Lib\idlelib\idle.bat -r "$(FULL_CURRENT_PATH)"
运行sotest2.py会返回以下内容:
Traceback (most recent call last):
File "C:\Users\doncherry\Desktop\sotest2.py", line 7, in <module>
foo = open ('sotest.py', 'r')
IOError: [Errno 2] No such file or directory: 'sotest.py'
当从Pyhton的IDLE运行相同的文件时,它运行没有错误。如果我将sotest2.py更改为以下内容,它可以正常使用Notepad ++。
import sotest
我需要更改配置的哪一部分才能使打开工作?我更喜欢在Notepad ++中更改一些设置,而不是在我的每个Python文件中添加代码。
答案 0 :(得分:0)
import sotest
有效,因为它会在sotest
中搜索sys.path
模块,如果您运行sotest2.py
,sys.path
的目录会添加到sotest2.py
作为一个脚本。如果sotest2.py
和sotest.py
位于不同的目录中,那么除非将sotest.py
的目录放入pythonpath,否则import sotest
内的sotest2.py
将失败。
要在sotest2.py中打开sotest.py作为文件,您可以指定其绝对路径。假设它们位于同一目录中,您可以自动找到它:
# in sotest2.py:
import os
scriptdir = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(scriptdir, 'sotest.py')
with open(path) as sotest_file:
text = sotest_file.read()