<p>只需添加相对路径:</p>
<p><code>.</code>表示从当前工作目录(通常是启动程序的位置)开始。你知道吗</p>
<p>因此,如果您从主程序所在的文件夹启动主程序,则:</p>
<pre><code>def Button3():
os.startfile('./resources/procexp.exe')
def Button4():
os.startfile('./resources/IJ.exe')
def Button5():
os.startfile('./resources/Br.exe')
def Button6():
os.startfile('./resources/Cs.exe')
</code></pre>
<p>然而,通常情况并非如此,大多数情况下,您会从任何地方启动程序(因为它在您的路径环境中),或者通过提供程序的完整路径。在这种情况下,您需要找出程序的安装位置,然后找出与之相关的资源的放置位置:</p>
<p>特殊变量<code>__file__</code>包含脚本包含路径的位置。您可以使用<code>os.path</code>包中的<code>dirname</code>方法获取目录名:</p>
<pre><code> program_dir = os.path.dirname(__file__)
</code></pre>
<p>然后,您可以相对地工作:</p>
<pre><code> resource_dir = os.path.join(program_dir, 'resources')
</code></pre>
<p><code>os.path.join</code>是一种以操作系统的方式将路径位连接在一起的方法。你知道吗</p>
<p>所以最终你的程序可以变成:</p>
<pre><code> resource_dir = os.path.join(os.path.dirname(__file__), 'resources');
def Button3():
os.startfile(os.path.join(resource_dir, 'procexp.exe'))
def Button4():
os.startfile(os.path.join(resource_dir, 'IJ.exe'))
def Button5():
os.startfile(os.path.join(resource_dir, 'Br.exe'))
def Button6():
os.startfile(os.path.join(resource_dir, 'Cs.exe'))
</code></pre>
<p>等等</p>
<p>当然为了使用操作系统路径您需要导入它:</p>
<pre><code> import os;
</code></pre>