我有保存在一個文本文件格式提取和使用python
VP VB go
NP PRP$ your NN left
這兩條線解析。 我想訪問該文本文件,然後打印這個下面的結果在一個新的文本文件
NP NN left
幫助我如何使用這個蟒蛇。
感謝您的任何幫助提前
我有保存在一個文本文件格式提取和使用python
VP VB go
NP PRP$ your NN left
這兩條線解析。 我想訪問該文本文件,然後打印這個下面的結果在一個新的文本文件
NP NN left
幫助我如何使用這個蟒蛇。
感謝您的任何幫助提前
編輯:這是更好嗎?
f=open("myfile")
#read all lines of the file and remove newline characters
a=[i.strip() for i in f.readlines()]
f.close()
for i in a:
i=i.split()
n=-1
try:
n=i.index("NN")
except:
pass
if n!=-1 and n!=len(i)-1 and i[0]=="NP":
print i[0], i[n], i[n+1]
該文件有1000行這些類型,並且NP和NN之間的單詞數量不固定,因此使用數組通過給出索引並指定第一行中的內容不可能是這樣 – Mcolorz 2013-03-16 22:56:50
如果我正確地解釋你,你想要的
NP NN word
所有情況下在這種情況下,你可以使用正則表達式表達式查找NP,NN,以及隨後的一句話:
import re
f = open('file.txt')
regex = r'^(NP).*?(NN) (\w+).*?$'
for line in f:
try: ' '.join(re.search(regex, line).groups())
except AttributeError: pass
我們在什麼基礎上選擇從文本文件中選擇'NP NN left'?沒有這樣的解釋,'print('NP NN left')'是一個有效的解決方案。 – unutbu 2013-03-16 22:19:11
@unutbu我想打印所有那些在行的開頭有NP的模式和NN在同一行的一個詞之前的模式。 – Mcolorz 2013-03-16 22:26:20