gpt4 book ai didi

Python:如何将输出捕获到文本文件? (现在只捕获了 530 行中的 25 行)

转载 作者:太空狗 更新时间:2023-10-30 02:22:23 26 4
gpt4 key购买 nike

我在 SO 上潜伏了相当多的时间,并进行了大量的搜索和阅读,但我也必须承认,在一般的编程方面我是一个相对菜鸟。我边学边学,所以我一直在玩 Python 的 NLTK。在下面的脚本中,我可以让一切正常工作,除了它只写多屏输出的第一个屏幕,至少我是这么想的。

这是脚本:

#! /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 个匹配项写入文件,我在这里缺少什么?

最佳答案

text.concordance(self, word, width=79, lines=25) 根据 manual 似乎还有其他参数.

我看不出有什么办法可以提取相关索引的大小,但是,concordance printing code似乎有这部分:lines = min(lines, len(offsets)),因此您可以简单地将 sys.maxint 作为最后一个参数传递:

concord = text.concordance("cultural", 75, sys.maxint)

添加:

现在查看您的原始代码,我看不出它以前可以工作的方式。 text.concordance 不返回任何内容,但使用 print 将所有内容输出到 stdout。因此,简单的选择是将标准输出重定向到您的文件,如下所示:

import sys

....

# Open the file
fileconcord = open('ccord-cultural.txt', 'w')
# Save old stdout stream
tmpout = sys.stdout
# Redirect all "print" calls to that file
sys.stdout = fileconcord
# Init the method
text.concordance("cultural", 200, sys.maxint)
# Close file
fileconcord.close()
# Reset stdout in case you need something else to print
sys.stdout = tmpout

另一种选择是直接使用相应的类并省略文本包装器。只需从 here 复制位并将它们与来自 here 的位结合起来你就完成了。

关于Python:如何将输出捕获到文本文件? (现在只捕获了 530 行中的 25 行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11044072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com