我有一个名为headerValue.txt其中包含以下内容数据:-在
Name Age
sam 22
Bob 21
我正在尝试编写一个python脚本,它将添加一个名为“合格性”的新头。 它将从文本文件中读取行并检查年龄是否超过18岁,然后在“合格”标题下打印“真”,并在“成人”标题下再添加一个标题“是”,如果年龄小于18岁则打印“否”。在
因为在文本文件中两者的年龄都超过18岁。输出将是比如:在
^{pr2}$代码片段:-在
fo =open("headerValue.txt", "r")
data = fo.readlines()
for line in data:
if "Age" in line:
if int(Age) > 18:
Eligibility = "True"
Adult = "yes"
因为我是python新手,所以我有点困在这里了。有什么帮助如何更新文本文件和添加标题的值?谢谢
您试图检查一行中是否存在字符串
"Age"
。它只存在于第一行。然后尝试将一个变量Age
转换为一个整数,看看它是否大于18。我看不到您在任何地方定义了Age
,所以我无法判断这段代码是否运行。在似乎您有一个制表符分隔或空格分隔的文件。它看起来像一个CSV文件,所以你可以这样对待它。这更简单,因为python提供了一个内置的^{} 模块。在这个模块中有^{} 和^{} 对象,它们允许您将csv文件中的每一行修改为字典。在下面的文件中,
csv.DictWriter
获取默认的头名称,restval
-参数定义字段的默认参数。这简化了代码,如下所示:输入文件是
^{pr2}$test.csv
:out.csv
中的输出:此模块适合您:https://docs.python.org/2/library/fileinput.html?highlight=fileinput#fileinput
对于填充版本,可以使用:
这将更新您的原始文件。在
代码中的
if
只对第一行有效(而不是您感兴趣的那一行)。我把它换成了检查年龄指数。另外,变量名通常不大写。 另外,关于data = [l.split() for l in fo.readlines()]
-看起来你的文件是空格分隔的。如果它是制表符/逗号分隔,您可以相应地拆分,但我建议使用csv。在相关问题 更多 >
编程相关推荐