這裏是我的三個字段的輸入文本文件。 (描述,數值,極性)如何使用python在文本文件中打印特定行
this is good
01
positive
this is bad
-01
negetive
this is ok
00
neutral
所以我需要得到基於值字段的所有描述。例如:當我檢查"01"
的條件時,我想打印"This is good"
。有沒有辦法做到這一點。請建議我。
這裏是我的三個字段的輸入文本文件。 (描述,數值,極性)如何使用python在文本文件中打印特定行
this is good
01
positive
this is bad
-01
negetive
this is ok
00
neutral
所以我需要得到基於值字段的所有描述。例如:當我檢查"01"
的條件時,我想打印"This is good"
。有沒有辦法做到這一點。請建議我。
使用從itertools
的grouper
配方通過在3行塊的文件進行迭代:
>>> from itertools import izip_longest, imap
>>> def grouper(n, iterable, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
>>> with open('test.txt') as f:
d = dict((val, (desc, pol))
for desc, val, pol in grouper(3, imap(str.rstrip, f)))
>>> d['00']
('this is ok', 'neutral')
>>> d['00'][0]
'this is ok'
>>> d['01'][0]
'this is good'
注:在Python 3使用正常map
代替(其不再需要一個進口)和izip_longest
是現在zip_longest
謝謝,但我越來越(3,imap(str.rstrip,f))下面的錯誤「d = {val:(desc,pol)desc,val,pol」} ^ SyntaxError:invalid syntax「 –
@VittalCherala Oh you're on Python <= 2.6?現在更新 – jamylak
謝謝,我會更新它。 –
訪問http://stackoverflow.com/questions/9073699/cant-print-a-specific-line-from-text-file可能重複的問題.. – 2013-04-15 06:13:06
感謝您的回覆,我已驗證該鏈接,在th在文本文件。文本用':'分隔,但我的文本文件是不同的。但我試過這個代碼,它不適合我的要求。 –
[DUPLICATE](http://stackoverflow.com/questions/16009161/how-do-i-use-a-specific-line-of-a-text-file-in-python) – KumarDharm