擅长:python、mysql、java
<p>我创建了一个账户,只是为了澄清我认为在罗斯最初的回复中发现的一个差异。</p>
<p>作为参考,他最初的回答是:</p>
<pre><code>import os
script_dir = os.path.dirname(__file__)
rel_path = "2091/data.txt"
abs_file_path = os.path.join(script_dir, rel_path)
</code></pre>
<p>这是一个很好的答案,因为它试图动态地创建到所需文件的绝对系统路径。</p>
<p>Cory Mawhoter注意到<code>__file__</code>是一个相对路径(在我的系统上也是如此),建议使用<code>os.path.abspath(__file__)</code>。<code>os.path.abspath</code>但是,返回当前脚本的绝对路径(即<code>/path/to/dir/foobar.py</code>)</p>
<p>要使用此方法(以及我最终如何使其工作),必须从路径末尾删除脚本名:</p>
<pre><code>import os
script_path = os.path.abspath(__file__) # i.e. /path/to/dir/foobar.py
script_dir = os.path.split(script_path)[0] #i.e. /path/to/dir/
rel_path = "2091/data.txt"
abs_file_path = os.path.join(script_dir, rel_path)
</code></pre>
<p>生成的abs_文件路径(在本例中)变为:<code>/path/to/dir/2091/data.txt</code></p>