用python从文件中提取部分文本
我有一个文本文件集合,其形式如下:用python从文件中提取部分文本,python,string,python-2.7,Python,String,Python 2.7,我有一个文本文件集合,其形式如下: Sponsor : U of NC Charlotte U N C C Station Charlotte, NC 28223 704/597-2000 NSF Program : 1468 MANUFACTURING MACHINES & EQUIP Fld Applictn: 0308000 Industrial Technology
Sponsor : U of NC Charlotte
U N C C Station
Charlotte, NC 28223 704/597-2000
NSF Program : 1468 MANUFACTURING MACHINES & EQUIP
Fld Applictn: 0308000 Industrial Technology
56 Engineering-Mechanical
Program Ref : 9146,MANU,
Abstract :
9500390 Patterson This award supports a new concept in precision metrology,
the Extreme Ultraviolet Optics Measuring Machine (EUVOMM). The goals for this
system when used to measure optical surfaces are a diameter range of 250 mm
with a lateral accuracy of 3.3 nm rms, and a depth range of 7.5 mm w
代码段上方和下方有更多文本。对于每个文本文件,我希望能够执行以下操作:
y_num[i] = 1468, 0308000, 56
y_txt[i] = MANUFACTURING MACHINES & EQUIP, Industrial Technology, Engineering-Mechanical
将NSF程序和Fld Applictn编号存储在一个列表中,并将相关文本存储在另一个列表中
因此,在上面的示例中,对于第I个文本文件,我需要以下内容:
y_num[i] = 1468, 0308000, 56
y_txt[i] = MANUFACTURING MACHINES & EQUIP, Industrial Technology, Engineering-Mechanical
在python中有没有一种干净的方法可以做到这一点?我更喜欢python,因为我使用os.walk解析存储在子目录中的所有文本文件 您可以尝试以下方法
yourtextlist = yourtext.split(':')
numbers = []
for slice in yourtextlist:
l = slice.split()
try:
numbers.append(int(l[0]))
except ValueError:
pass
因此,values和values1具有特定的值,您需要测试这些值,具体取决于格式的一致性。您可以使用正则表达式或简单的字符串操作,也可以通过编写解析器来实现这一点。所有这些在python中都是可能的。是的,如果你经常做字符串操作,那么字符串操作就会变得相当乏味。虽然有时候也没那么糟糕。例如,请参阅我的答案。将open(filename,'r')作为f:for-in-f.detailures():给我:file对象没有属性detailures“查找新代码。这实际上是readlines。抱歉。自动更正有时很糟糕。谢谢,这很有意义。我实际上在谷歌上搜索了“detailures”“在python文件操作的上下文中,它抛出了垃圾。从没想过这是一个打字错误!您的解决方案是有效的,因为我得到了所需的字段。我必须将这些行中的数字和文本分开,但这是可行的。还有,如果-->elif,谢谢。我尝试了这个,但它也保存了文本中的每个数字。我专门寻找与上述字段对应的数字。