我正在努力使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

08-26 03:34