Das ist, was ich habe:Ich brauche die stdout für eine Zeile zu überschreiben, und kehrt dann die Änderung
cfd1 = nltk.ConditionalFreqDist(biglisttagged)
sys.stdout = open(corpus_name+"-pos-word-freq.txt",'w')
cfd1.tabulate()
sys.stdout = sys.__stdout__ #this is supposed to revert the change, but it doesn't.
print("helloword") #I need this to print to stdout
Dies liegt daran, tabulate (automatisch) nach stdout schreibt, und ich muss es die schreiben Datei.
Mein Problem ist jedoch, dass stdout für nichts anderes im Programm funktioniert.
In dem obigen Beispiel würde helloworld nicht gedruckt werden, was muss ich ändern?
Ich würde vorschlagen, dass Sie eine Pull-Anfrage an NLTK machen, die einen optionalen Parameter hinzufügt, um Aufrufe wie 'tabulate (file = sys.stdout) 'zu ermöglichen. Es wäre die sauberste Lösung. – firegurafiku
Woher rennst du das und welche Version von Python? –