【发布时间】:2019-01-09 02:33:13
【问题描述】:
注册商希望解析包含许多学生数据的文本文件。
输入文件:多个学生数据的文本文件(每个学生文件格式相同)
我已成功找到“模式”并将其打印到文件中,这是我需要的 75%。在一种情况下,我需要在找到匹配项并打印匹配行后打印下一行。 那就是我迷路的地方。 [可迭代、迭代器、生成器……对我来说都是希腊语]
文本示例:
Student............: StudentA
Program............: BA Adol Biology Education (ED.ADOL.BIO.BA)
C) 3: Lab Science Course
Complete 1 Lab Science course
CHM-111 General Chemistry I *4..... FA2018 A 4
I) 4: Adolescent Biology Education Major
Credits: 24
GPA Achieved/Needed: 4.000 / 2.500
Complete all 3 subrequirements:
I) A: Educ Requirements
COMPLETE 2 GROUPS
Credits: 5
GPA Achieved/Needed: none / 3.000
I) Group 1
Student............: StudentB
Program............: BA Adol Eng Education (ED.ADOL.ENG.BA)
C) 3: Lab Science Course
Complete 1 Lab Science course;
CHM-111 General Chemistry I *4..... FA2018 A 4
I) 4: Adolescent English Education Major
Credits: 24
GPA Achieved/Needed: 4.000 / 2.500
Complete all 3 subrequirements:
I) A: Educ Requirements
COMPLETE 2 GROUPS
Credits: 5
GPA Achieved/Needed: none / 3.000
I) Group 1
Student............: StudentC
Program............: BA Adol Chemistry Education (ED.ADOL.CHM.BA)
C) 3: Lab Science Course
Complete 1 Lab Science course;
CHM-111 General Chemistry I *4..... FA2018 A 4
I) 4: Adolescent Chemistry Education Major
Credits: 24
GPA Achieved/Needed: 4.000 / 2.500
Complete all 3 subrequirements:
I) A: Educ Requirements
COMPLETE 2 GROUPS
Credits: 5
运行 Python 3.7.1;尝试过使用__next__(),但没有成功。从我读到的print() 将指针移动到下一行......所以我尝试这样做,但这不起作用。
outfile = open('result.txt', 'w')
with open('BEVL_EDU.txt','r') as inFile:
f = inFile.read().splitlines()
for line in f:
if 'Student...' in line:
outfile.write(line + '\n')
if '4:' in line:
outfile.write(line + '\n')
print(line) # --> this is where I tried to move the pointer to next line
outfile.write(line + '\n') # --> and then print the "next" line :-)
if 'GPA Achieved/Needed' in line:
outfile.write(line + '\n')
【问题讨论】:
-
什么情况下需要“找到匹配后打印下一行”?
标签: python