<p>您试图检查一行中是否存在字符串<code>"Age"</code>。它只存在于第一行。然后尝试将一个变量<code>Age</code>转换为一个整数,看看它是否大于18。我看不到您在任何地方定义了<code>Age</code>,所以我无法判断这段代码是否运行。在</p>
<p>似乎您有一个制表符分隔或空格分隔的文件。它看起来像一个CSV文件,所以你可以这样对待它。这更简单,因为python提供了一个内置的<a href="https://docs.python.org/2/library/csv.html" rel="nofollow">^{<cd4>}</a>模块。在这个模块中有<a href="https://docs.python.org/2/library/csv.html#csv.DictReader" rel="nofollow">^{<cd5>}</a>和<a href="https://docs.python.org/2/library/csv.html#csv.DictWriter" rel="nofollow">^{<cd6>}</a>对象,它们允许您将csv文件中的每一行修改为字典。在下面的文件中,<code>csv.DictWriter</code>获取默认的头名称,<code>restval</code>-参数定义字段的默认参数。这简化了代码,如下所示:</p>
<pre><code>>>> with open("test.csv", "r") as inf, open("out.csv", "w") as outf:
... in_reader = csv.DictReader(inf, delimiter=" ")
... out_writer = csv.DictWriter(outf, delimiter=" ", fieldnames=['Name', 'Age', 'Eligibility', 'Adult'], restval=False)
... out_writer.writeheader()
... for line in in_reader:
... if int(line['Age']) > 18:
... line['Eligibility'] = True
... line['Adult'] = True
... out_writer.writerow(line)
</code></pre>
<p>输入文件是<code>test.csv</code>:</p>
^{pr2}$
<p><code>out.csv</code>中的输出:</p>
<pre><code>msvalkon@lunkwill~$: cat out.csv
Name Age Eligibility Adult
sam 22 True True
Bob 21 True True
foo 5 False False
</code></pre>