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

2024-01-06

我已经潜伏在 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 http://nltk.googlecode.com/svn/trunk/doc/api/nltk.text-pysrc.html#Text.concordance.

我看不出有什么办法可以提取一致性索引的大小,但是索引打印代码 http://nltk.googlecode.com/svn/trunk/doc/api/nltk.text-pysrc.html#ConcordanceIndex.print_concordance似乎有这部分:lines = min(lines, len(offsets)),因此你可以简单地通过sys.maxint作为最后一个论点:

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

Added:

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

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 http://nltk.googlecode.com/svn/trunk/doc/api/nltk.text-pysrc.html#Text.concordance并将它们与来自的位组合起来here http://nltk.googlecode.com/svn/trunk/doc/api/nltk.text-pysrc.html#ConcordanceIndex.print_concordance你就完成了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何将输出捕获到文本文件? (现在仅捕获 530 行中的 25 行) 的相关文章

随机推荐

  • 为什么我一定要揭开脆弱的自己?

    我创建了一个名为VerifyObject 其中包含具有类似签名的函数 typealias handlerCodeID String gt Void class func checkPause withID String runOnPause
  • 为什么嵌套的describe()块看不到外部块中定义的变量?

    我在实际代码中遇到了这个问题 但我整理了一个简单的例子来证明这一点 下面的代码工作正常 我在我的根目录中设置了一个变量describe 在我的子系统中可以访问的块describe s it blocks describe simple ob
  • Fortran SAVE 语句

    我读过有关save 英特尔 语言参考文档中的声明 但我不太明白它的作用 有人可以用简单的语言向我解释一下当save语句包含在模块中 原则上 当模块超出范围时 该模块的变量将变为未定义 除非使用 SAVE 属性声明它们 或者使用 SAVE 语
  • ViewPager2 上的 TransactionTooLargeException

    我看到了很多关于 ViewPager 的问题 但现在它已经上线了ViewPager2 我得到了一个java lang RuntimeException android os TransactionTooLargeException data
  • CKEditor - 使用数据处理器删除脚本标签

    我对 CKEditor 还很陌生 两天前开始使用它 而且我仍在与一些配置作斗争 例如从编辑器中删除标签 例如 如果用户在源模式下键入以下内容 我想将其删除 查看文档 我发现这可以使用 HTML 过滤器来完成 我这样定义了它 但它不起作用 v
  • 如何增加 JVM 内存? [复制]

    这个问题在这里已经有答案了 你好 我想知道我是否可以根据我的应用程序增加 JVM 内存 如果可以 我该如何增加 JVM 内存 我怎样才能知道 JVM 的大小 启动 JVM 时 可以调整两个参数以满足您的内存需求 Xms
  • 如何通过 Jayway JsonPath 展平带有嵌套列表的 json?

    目前我需要根据配置处理一些 json 结果 而不是硬代码 例如 json如下 data orderNo CG8310150 details skuId 4384 amount 2 skuId 4632 amount 5 orderNo CG
  • 如何让greatmonkey 检查页面上是否找到文本

    我确实在谷歌和用户脚本网站上做了一些研究 但没有成功找到答案 那么基本上我如何检查页面上是否找到特定文本 并且文本没有特殊标签或任何东西 对于 FF GM 来说 一个粗略但快速的方法 if Text you are looking for
  • Android随机多项选择测验:如何识别正确答案

    我正在尝试为 Android 创建一个随机多项选择测验 我想显示字符串数组中的随机问题 另一个字符串数组的相应答案显示在四个选项之一中 其他三个选项将来自另一个字符串数组 该数组将用于随机提供所有问题的 错误 答案 两个问题 有没有更好的方
  • Mono 不写入设置默认值

    这是我的问题 如果我只使用一个 Windows 窗体项目并且仅调用 Settings Default Save 运行时 Mono 会创建一个 user config 文件 其中包含每个设置的默认值 很好 到目前为止一切都很好 但现在我添加了
  • CSS 不显示任何内容且不透明动画且关键帧不起作用

    我有一个非常基本的 HTML 片段 其目的是从display none to display block不透明度从 0 变为 1 我使用的是 Chrome 浏览器 它使用 webkit前缀作为偏好并做了 webkit keyframes设置
  • Excel-DNA:F# 初始化错误 [错误] 方法未注册

    作为一名新手 F 开发人员 我尝试创建一个简单的 Excel DNA 函数 如下所示
  • 启用 DMA 的 UART Tx 模式

    我已经为 UART 在传输模式下编写了一个简单的设备驱动程序 并启用了 DMA 和中断 我使用的硬件是 omap 4460 pandaboard 其中加载了 Linux 3 4 下面我分享一下相关部分的代码 在开放阶段 dma map io
  • 使用 Angularjs 在选择下拉列表中设置默认值

    我有一个对象如下 我必须将其显示为下拉菜单 var list id 4 name abc id 600 name def id 200 name xyz 在我的控制器中 我有一个带有值的变量 该值决定在下拉列表中默认选择数组中的上述三项中的
  • 当我尝试运行在 GitHub 上找到的代码时,我遇到了这个问题。 Pydot 和 graphivz 已安装但仍然出现此错误[重复]

    这个问题在这里已经有答案了 2022 07 19 18 41 58 081967 W tensorflow stream executor platform default dso loader cc 64 Could not load d
  • 如何告诉 ProGuard 保留私有字段而不指定每个字段

    这是我的课 package com tools app holiday public class Holiday private String name private Calendar dateFrom Calendar getInsta
  • Git 从以前的提交范围创建分支?

    我有一个操作系统项目的一堆提交 我想将最后的 20 个提交提取到另一个分支 这样我就可以拉取请求 我怎么能这样做呢 原因是我可能有 150 次提交 但其中大部分都是为了更大的贡献 但尚未准备好 但下一个版本即将发布 Thanks 你可以这样
  • 如何在 mysql 中将 csv 文件导出到我的计算机

    我正在尝试将表以 csv 格式从远程服务器导出到我的台式计算机 我有这个代码 select from order into outfile C Users Sleep Shop Desktop MySQL Scripts outfile c
  • Scala 和 Java 的构建器库

    我需要一个可以从 Scala 和 Java 调用的构建器库 在 Scala 中使用默认的命名参数就足够简单了 但是我如何从 Java 调用这段代码呢 见下文 或者也许我应该使用两种语言都更通用的流畅 API Scala case class
  • Python:如何将输出捕获到文本文件? (现在仅捕获 530 行中的 25 行)

    我已经潜伏在 SO 上做了相当多的工作 并进行了大量的搜索和阅读 但我也必须承认 总的来说 我在编程方面是一个相对菜鸟 我正在努力边学边学 所以我一直在使用 Python 的 NLTK 在下面的脚本中 我可以让一切正常工作 除了它只写多屏幕