<p>作为一个完整的例子,考虑下面的代码。我添加了过多的评论来解释每一步都在做什么。在</p>
<pre><code># Open the input file read-only...
with open('infile.txt', 'r') as infile:
# Skip the first 4 lines, and store them as "header" in case we need them...
# It's important that we use "next" here and _not_ infile.readline().
# readline and the file iteration methods ("for line in file") can't be mixed
header = [next(infile) for dummy in range(4)]
# Open the output file, overwriting whatever is there...
with open('outfile.txt', 'w') as outfile:
# Loop over the lines in the input file
for line in infile:
# Strip off leading and trailing whitespace (e.g "\n") and
# split on whitespace. This gives us a list of strings.
columns = line.strip().split()
# Write the 1st and 4th columns in each row as left-justified
# columns with a fixed-width of 8
outfile.write('{:8}{:8}\n'.format(columns[0], columns[3]))
</code></pre>
<p>如果您使用的是旧版本的python并且希望避免<code>with</code>语句,可以这样写:</p>
^{pr2}$
<p>不过,养成使用<code>with</code>语句处理文件对象的习惯是个好主意。它们确保即使代码中有错误,文件句柄也会自动关闭。<code>with</code>语句是“上下文管理器”。对于许多需要“样板”清理和/或输入代码的事情,它们非常方便。在</p>