我正在努力使readline()和split()能够按预期工作。我试图使用.split(')')来削减文本文件中的某些数据,并将其中一些数据写入下一个文本文件。
我尝试过编写所有内容。
我已经尝试[cnt%2]达到我的期望。
line = fp.readline()
fw = open('output.txt', "w+")
cnt = 1
while line:
print("Line {}: {}".format(cnt, line.strip()))
line = fp.readline()
line = line.split(')')[0]
fw.write(line + "\n")
cnt += 1
我是从文本文件中读取示例。
WELD 190制造I MasterCAM入门(3)
1½小时讲座-4½小时实验室
注意:交叉列出为DT 190 / ENGR 190 / IT 190
本课程将向学生介绍MasterCAM,2D和基本3D
造型。学生将收到需要的零件的说明和图纸
2轴或3轴加工。学生将设计,建模,编程,设置和运行
它们在各种机器上的零件,包括等离子切割机,喷水切割机和
铣床。
WELD 197焊接技术主题(.5-3)
我距离实际有效地抓取这些数据还有很长的路要走,但我正在尝试开始。
我的目标是仅提取类名称和编号并删除描述。
一如既往的感谢!
最佳答案
我相信可以解决您当前的问题,如果仅尝试解析一行,则只需将第二个line = fp.readline()
行移至while循环的末尾。当前,实际上您是从第二行开始解析的,因为您已经在示例代码的第一行中使用了readline
。
更改后,它看起来像这样:
line = fp.readline() # read in the first line
fw = open('output.txt', "w+")
cnt = 1
while line:
print("Line {}: {}".format(cnt, line.strip()))
line = line.split(')')[0]
fw.write(line + "\n")
cnt += 1
line = fp.readline() # read in next line after parsing done
您的示例输入文本的输出:
WELD 190制造I MasterCAM简介(3