<p>是的,<code>'\\'</code>只适用于Windows。您可以使用<code>os.sep</code>,在Windows上是<code>'\\'</code>,在classic Mac上是<code>':'</code>,在几乎所有其他的东西上是<code>'/'</code>,或者任何适合当前平台的东西。你知道吗</p>
<p>你可以<em>通常</em>使用<code>'/'</code>逃脱惩罚。除了Windows或Unix之外,没人可能会在任何东西上运行你的程序。在大多数情况下,Windows将接受<code>'/'</code>路径名。但是有许多Windows命令行工具会把路径与标志混淆,如果它以<code>/</code>开头,有些甚至在中间有一个<code>/</code>,如果您使用的是<code>\\.\</code>路径,<code>/</code>被视为常规字符而不是分隔符,等等。所以你最好不要那样做。你知道吗</p>
<p>简单的方法就是使用<a href="https://docs.python.org/3/library/os.path.html#os.path.join" rel="nofollow">^{<cd12>}</a>:</p>
<pre><code>image = os.path.join(PATH, "some_image.gif")
</code></pre>
<hr/>
<p>顺便说一句,在您的第一行中,您已经在使用<code>join</code>,但是您不需要它:</p>
<pre><code>PATH = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0])))
</code></pre>
<p>用这样一个参数调用<code>join</code>是完全合法的,但也完全没有用;你只需把一个东西连接起来,什么都没有;你会得到你所传递的东西。就这么做吧:</p>
<pre><code>PATH = os.path.abspath(os.path.dirname(sys.argv[0]))
</code></pre>
<hr/>
<p>最后一件事:如果您使用的是python3.4+,您可能需要考虑使用<a href="https://docs.python.org/3/library/pathlib.html" rel="nofollow">^{<cd15>}</a>而不是<code>os.path</code>:</p>
<pre><code>PATH = Path(sys.argv[0]).parent.resolve()
image = PATH / "some_image.gif"
</code></pre>