<p>本着现有<a href="https://stackoverflow.com/questions/469696/what-is-your-most-useful-c-c-snippet">"what's your most useful C/C++ snippet"</a>-线程的精神:</p>
<p>你们是否有简短的、单功能的Python代码片段(经常使用)并希望与StackOverlow社区共享?请保持小条目(25以下
可能是台词?)每个帖子只举一个例子。</p>
<p>我将从一个小片段开始,我经常使用它来计算python项目中的sloc(源代码行):</p>
<pre><code># prints recursive count of lines of python source code from current directory
# includes an ignore_list. also prints total sloc
import os
cur_path = os.getcwd()
ignore_set = set(["__init__.py", "count_sourcelines.py"])
loclist = []
for pydir, _, pyfiles in os.walk(cur_path):
for pyfile in pyfiles:
if pyfile.endswith(".py") and pyfile not in ignore_set:
totalpath = os.path.join(pydir, pyfile)
loclist.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>( ( len(open(totalpath, "r").read().splitlines()),
totalpath.split(cur_path)[1]) )
for linenumbercount, filename in loclist:
print "%05d lines in %s" % (linenumbercount, filename)
print "\nTotal: %s lines (%s)" %(sum([x[0] for x in loclist]), cur_path)
</code></pre>
<p>我知道的唯一一个真正让我吃惊的“窍门”是列举。它允许您访问for循环中元素的索引。</p>
<pre><code>>>> l = ['a','b','c','d','e','f']
>>> for (index,value) in enumerate(l):
... print index, value
...
0 a
1 b
2 c
3 d
4 e
5 f
</code></pre>