我有一个简单的程序,它查看一个文件,找到里面的任何数字,并将它们加到一个名为 running_total 的变量中。我的问题似乎是我的文件名是正在读取的内容而不是其内容。
import re
file = input('Enter file name:')
open(file)
print(file)
running_total = None
for line in file:
line = line.rstrip()
numbers = re.findall("[0-9]+", line)
print(numbers)
for number in numbers:
running_total += float(number)
print(running_total)
我错过了什么?
原文由 Baruch Elias 发布,翻译遵循 CC BY-SA 4.0 许可协议
file
是表示文件名的字符串,当它从input
函数中出来时,它仍然是一个字符串。所以当你遍历它时,你会一个一个地得到文件名的字母。当您调用open(file)
时返回一个可以迭代以提供文件内容的对象,但您当前没有为该对象命名或重新使用它。你的意思是这样的:…虽然更惯用的 Pythonic 方法是使用
with
语句:请注意,变量
file_handle
是一个对象,其类称为file
(这是我在此处更改变量名称的原因之一)。