擅长:python、mysql、java
<p>可以使用<code>enumerate()</code>函数在迭代时从文件中获取行号和行,并使用<code>divmod()</code>对数字进行除法和余数。在这里,我们做两次,首先从几秒钟(行号)到几分钟,然后从几分钟到几小时。你知道吗</p>
<p>然后,我们使用规则的<code>%</code>插值和<code>%02d</code>说明符将时/分/秒变量转换为零填充的两个字符长度的字符串,并用冒号将它们粘合到原始行。你知道吗</p>
<p>对于添加的元点,默认情况下,此脚本会对自身进行注释。:)</p>
<p>要将输出写入另一个文件,最简单的方法是使用shell:</p>
<pre class="lang-sh prettyprint-override"><code>$ python this-script.py > annotated.txt
</code></pre>
<p>顺便说一下,这是python3;<code>print()</code>语句在python2上看起来会有所不同。你知道吗</p>
<p><em>编辑:</em>根据评论中的讨论添加了参数解析。脚本现在允许</p>
<pre><code>$ python this-script.py inputfile.txt > annotated.txt
</code></pre>
<hr/>
<pre class="lang-py prettyprint-override"><code>import argparse
ap = argparse.ArgumentParser()
ap.add_argument('input', default=__file__)
args = ap.parse_args()
with open(args.input, 'r') as f:
for line_number, line in enumerate(f):
minutes, seconds = divmod(line_number, 60)
hours, minutes = divmod(minutes, 60)
print('%02d:%02d:%02d:%s' % (hours, minutes, seconds, line), end='')
</code></pre>