在Python中过滤掉文件内容

时间:2015-03-11 17:19:56

标签: python file-io

我有一个数据文件,需要区分字母和数字。这是该文件的示例。

Fahrenheit degrees: 67.2
Fahrenheit degrees: 66.0
Fahrenheit degrees: 78.9
Fahrenheit degrees: 102.1
Fahrenheit degrees: 32.0
Fahrenheit degrees: 87.8

最终目标是阅读每个数字,将其转换为Celcius,然后打印出结果。我会用什么功能一行一行地读取数字?任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用简单的list comprehension

执行此操作
with open("filename.txt") as f:
    numbers = [float(line.split()[2]) for line in f]

使用with上下文管理器打开包含数据的文件,然后迭代文件中的每一行,拆分空白,然后取第三行(Python中的索引是基于0的)字段和转换它是浮动的。最后,您将获得所有阅读材料的清单。

with会在您完成文件后处理该文件,因此您无需记得在稍后调用f = open("filename.txt")时将每个f.close()与之匹配。