擅长:python、mysql、java
<p>使用动态生成的变量名是个坏主意。使用直接<code>__dict__</code>访问是可能的,但是对于以后的代码来说,没有好的方法可以知道所使用的名称。相反,使用一个列表或字典,你可以索引(或迭代)。以下是使用<code>D</code>字典的代码版本,其中键是<code>(l, i)</code>元组:</p>
<pre><code>l = 1 # I assume this gets incremented somewhere not shown
D = {}
for root, dirs, files in os.walk(r'D:\Python_Programs\B1'):
p = os.path.split(root)
for i, dir in enumerate(dirs):
D[l, i] = os.path.join(p[-1], dir)
print("D[{}, {}] = {}".format(l, i, D[l, i]))
</code></pre>
<p>但是这仍然有一个逻辑问题,因为字典键在外循环的迭代之间不是唯一的。也许这就是<code>l</code>应该递增的地方?如果是这样,这里有一个从<code>enumerate</code>获得<code>l</code>的替代版本:</p>
<pre><code>import os.path
D = {}
for l, (root, dirs, files) in enumerate(os.walk(r'D:\Python_Programs\B1')):
p = os.path.split(root)
for i, dir in enumerate(dirs):
D[l, i] = os.path.join(p[-1], dir)
print("D[{}, {}] = {}".format(l, i, D[l, i]))
</code></pre>