我已經在SO和相當數量的搜索和閱讀上做了相當多的潛伏,但我還必須承認在編程方面是一個相對的noob。我正在努力學習,所以我一直在玩Python的NLTK。在下面的腳本中,我可以讓所有的東西都起作用,除了它只寫出多屏輸出的第一個屏幕,至少我是這麼想的。Python:如何將輸出捕獲到文本文件? (現在只捕獲了530條線中的25條)
這裏的腳本:
#! /usr/bin/env python
import nltk
# First we have to open and read the file:
thefile = open('all_no_id.txt')
raw = thefile.read()
# Second we have to process it with nltk functions to do what we want
tokens = nltk.wordpunct_tokenize(raw)
text = nltk.Text(tokens)
# Now we can actually do stuff with it:
concord = text.concordance("cultural")
# Now to save this to a file
fileconcord = open('ccord-cultural.txt', 'w')
fileconcord.writelines(concord)
fileconcord.close()
而這裏的輸出文件的開頭:
Building index...
Displaying 25 of 530 matches:
y . The Baobab Tree : Stories of Cultural Continuity The continuity evident
regardless of ethnicity , and the cultural legacy of Africa as well . This Af
缺少什麼我在這裏得到寫入文件的整個530場比賽?
有趣。當我添加額外的參數時,我得到一個空白文件和以下響應:「Traceback(最近呼叫最後一個): 文件」concordance.py「,第23行,在 fileconcord.writelines(concord) TypeError:writelines )需要一個可迭代的參數(對不起,我被困在一起 - 我找不到在這個評論空間中輸入多個返回值的方法)。 –
另外一個發現:第二個參數允許我設置上下文的數量:當我將它改爲250時,每行總共有250字節。甜! –
@JohnLaudun奇怪,現在我不明白你原來的代碼如何工作,看nltk來源 - 顯然不應該。 'text.concordance'不返回任何內容,它使用'print'打印所有內容。因此,我猜你可以重定向stdout的輸出。有關詳細信息,請參閱我的帖子的新增內容 – bezmax