从记事本空闲运行Python时打开外部文件++

2024-10-03 02:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文件,都在我的桌面上:

在索斯特.py

print 'Hello world'

sotest2.py

^{pr2}$

我用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'

当使用pyton的IDLE运行同一个文件时,它运行时不会出错。如果我将sotest2.py更改为下面的代码,它可以在Notepad++中正常工作。在

import sotest

我需要更改配置的哪一部分才能使开场白工作?我更喜欢在记事本++中更改一些设置,而不是在每个Python文件中添加代码。在


Tags: 文件to代码pyhelloworlduse桌面上
1条回答
网友
1楼 · 发布于 2024-10-03 02:32:37

import sotest工作是因为它搜索sys.path中的sotest模块,并且如果您将sotest2.py作为脚本运行,sotest2.py的目录将添加到sys.path。如果sotest2.pysotest.py在不同的目录中,那么除非有其他东西把sotest.py的目录放入pythonpath,那么sotest2.py中的{}将失败。在

打开索斯特.py在sotest2.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()

相关问题 更多 >