如果我有一个文本文件:
StudentA:
10
20
30
40
StudentB:
60
70
80
90
我想创建一个函数:
def read_file(file,student):
file=file.open('file.txt','r')
当我打电话时,
read_file(file,StudentA)
它会显示如下列表:
[10,20,30,40]
我怎么能用while循环呢?
答案 0 :(得分:2)
我不确定您为什么要使用while
阅读,for-loop
会做得很好。但这是一种读取文件的pythonic方式。
with open(...) as f:
for line in f:
<do something with line>
with
语句处理打开和关闭文件,包括是否在内部块中引发异常。 for line in f
将文件对象f
视为可迭代,它自动使用缓冲的IO和内存管理,因此您不必担心大文件。
答案 1 :(得分:1)
请记住,StackOverflow不是代码编写服务。通常情况下,我不会做这样的事情,直到你表现出一些尝试写下你自己的答案,但今天有人帮我一个忙,并且本着这种精神,我传递了善意。
import re
def read_file(filename, student):
with open(filename, 'r') as thefile:
lines = [x.strip().upper() for x in thefile.readlines()]
if student[-1] != ':':
student += ':'
current_line = lines.index(student.upper()) + 1
output = []
while current_line < len(lines) and re.search('^\d+$', lines[current_line]):
output.append(int(lines[current_line]))
current_line += 1
return output