<p>如果这是一个列表,你就这样做</p>
<pre><code>try:
return data[-1]
except IndexError as e:
return e
// in your code you can just print "e" and you can continue like this...
// version two demonstrate why try, except is useful
def getdir(data):
try:
data[-1]
except IndexError as e:
return e
....
print getdir(data)
print 1+1
</code></pre>
<p>假设索引列表时出错,程序不会停止:</p>
<pre><code>list index out of range
2
</code></pre>
<p>这就是你想要的吗?你知道吗</p>
<hr/>
<p>为了有用,您应该使用logger来跟踪<code>e</code>(错误消息),而是返回一个默认值(如<code>None</code>),这样您就知道有什么地方出错了/不存在目录。你知道吗</p>
<p>我不知道这里的<code>string</code>模块有什么用。如果只是在列表中找到我需要的东西,我很少使用这个模块。你知道吗</p>
<hr/>
<p>请给我这些描述和编辑您原来的职位。你知道吗</p>
<ol>
<li>给我<code>print line</code>的结果</li>
<li>给我<code>print data</code>的结果</li>
<li>你想要什么?你知道吗</li>
</ol>
<p>在回答我的问题时,你也许能想出解决的办法。你知道吗</p>
<p>谢谢。你知道吗</p>
<hr/>
<p>好吧。所以我假设每一行都是表格的记录:</p>
<p><code>12-09-11 10:04PM <DIR> mcl_201147_hw79u_05</code>
假设您没有办法将<code>time</code>、<code><DIR></code>和<code>dir-name</code>分开,您可以这样做</p>
<pre><code>mystring = "12-09-11 10:04PM <DIR> mcl_201147_hw79u_05"
dirname = mystring.split(" ")[-1]
// ['12-09-11', '', '10:04PM', '', '', '', '', '', '', '<DIR>', '', '', '', '', '', '', '', '', '', 'mcl_201147_hw79u_05']
// and [-1] indicates the last element in the list (in reverse order)
</code></pre>
<p>您也可以尝试先<code>' '.join(mystring.split())</code>,然后应用<code>split()</code>(没有任何参数),但我认为立即执行<code>split</code>更简单,内存效率更高,因为第一个方法只会创建一个列表,而另一个方法会创建两个列表。你知道吗</p>
<p>如果<code>lines</code>还不是<code>str</code>类型,请尝试查看<code>str(line)</code>是否有帮助。你知道吗</p>
<p>如果你需要找到所有的<code>dirname</code>,请用谷歌<code>list comprehension</code>。它被认为比循环更有效。这是一个简洁的方式写下你要达到的目标。。。当然,要根据你的要求进行适当的剥离。你知道吗</p>