将打印输出重定向到Python中的.txt文件
我是Python的初学者。在这个问题上,我从stackoverflow的答案中尝试了许多方法,但它们在我的脚本中都不起作用。将打印输出重定向到Python中的.txt文件,python,parsing,text,Python,Parsing,Text,我是Python的初学者。在这个问题上,我从stackoverflow的答案中尝试了许多方法,但它们在我的脚本中都不起作用。 我有这个小脚本可以使用,但是我不能得到巨大的结果到.txt文件,所以我可以分析数据。如何将打印输出重定向到计算机上的txt文件 from nltk.util import ngrams import collections with open("text.txt", "rU") as f: sixgrams = ngrams(f.read().decode('u
我有这个小脚本可以使用,但是我不能得到巨大的结果到.txt文件,所以我可以分析数据。如何将打印输出重定向到计算机上的txt文件
from nltk.util import ngrams
import collections
with open("text.txt", "rU") as f:
sixgrams = ngrams(f.read().decode('utf8').split(), 2)
result = collections.Counter(sixgrams)
print result
for item, count in sorted(result.iteritems()):
if count >= 2:
print " ".join(item).encode('utf8'), count
只需在命令行执行:
python script.py>text.txt
只需在命令行执行:python script.py>text.txt
支持重定向(>fileobj
):
在Python 3.x中,接受可选的关键字参数文件
:
print("....", file=f)
如果您在Python2.6+中这样做,则即使在Python2.x中也可以使用上述方法。支持重定向(>fileobj
):
在Python 3.x中,接受可选的关键字参数文件
:
print("....", file=f)
如果您在Python2.6+中这样做,那么即使在Python2.x中,上述方法也是可能的。使用BufferedWriter,您也可以这样做
os = io.BufferedWriter(io.FileIO(pathOut, "wb"))
os.write( result+"\n")
for item, count in sorted(result.iteritems()):
if count >= 2:
os.write(" ".join(item).encode('utf8')+ str(count)+"\n")
outs.flush()
outs.close()
使用BufferedWriter可以这样做
os = io.BufferedWriter(io.FileIO(pathOut, "wb"))
os.write( result+"\n")
for item, count in sorted(result.iteritems()):
if count >= 2:
os.write(" ".join(item).encode('utf8')+ str(count)+"\n")
outs.flush()
outs.close()
正如Antti提到的,你应该更喜欢python3,不要让这一切变得烦人 蟒蛇在你身后。以下脚本适用于python2和python3 要读取/写入文件,请使用模块中的
open
功能,这是
python2/python3兼容。始终使用with
语句打开类似文件的资源。带有的用于将块的执行包装在一个文件中。文件描述符具有上下文管理器,并将在离开with
块时自动关闭
不依赖python,如果您想读取文本文件,您应该知道
对该文件进行编码以正确读取(如果您不确定,请尝试utf-8
首先)。此外,正确的UTF-8签名为UTF-8
,模式为U
去润滑
#/usr/bin/env python
#-*-编码:utf-8;模式:python-*-
从nltk.util导入ngrams
导入集合
输入io,系统
def干管(填充、输出文件):
将io.open(infle,encoding=“utf-8”)作为i:
六克=ngrams(即读取().split(),2)
结果=集合。计数器(六克)
templ=“%-10s%s\n”
io.open(输出文件“w”,编码=“utf-8”)为o:
o、 书写(模板%(u“计数”,u“单词”))
o、 写入(模板%(u“-”*10,u“-”*30))
#分类可能很昂贵。排序前,筛选不需要的项目
#要处理,顺便说一句,将*count*放在元组前面。
filtered=[(c,w)表示结果中的w,c。如果c>1,则为items()
filtered.sort(reverse=True)
对于计数,筛选中的项目:
o、 写入(模板%(计数“.join(项)))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
sys.exit(main(“text.txt”、“out_text.txt”))
通过输入text.txt
文件:
周四早上八点,亚瑟感觉不太好
周四早上他错过了100欧元。这里是100欧元的欧元符号
测试非ASCII字符的编码,因为编码错误
只在星期四早上发生。
我得到以下输出\u文本
:
计算字数
---------- ------------------------------
星期四下午三点
星期四上午2点。
2 100 €
正如安蒂所提到的,你应该更喜欢python3,不要让这一切烦人
蟒蛇在你身后。以下脚本适用于python2和python3
要读取/写入文件,请使用模块中的open
功能,这是
python2/python3兼容。始终使用with
语句打开类似文件的资源。带有的用于将块的执行包装在一个文件中。文件描述符具有上下文管理器,并将在离开with
块时自动关闭
不依赖python,如果您想读取文本文件,您应该知道
对该文件进行编码以正确读取(如果您不确定,请尝试utf-8
首先)。此外,正确的UTF-8签名为UTF-8
,模式为U
去润滑
#/usr/bin/env python
#-*-编码:utf-8;模式:python-*-
从nltk.util导入ngrams
导入集合
输入io,系统
def干管(填充、输出文件):
将io.open(infle,encoding=“utf-8”)作为i:
六克=ngrams(即读取().split(),2)
结果=集合。计数器(六克)
templ=“%-10s%s\n”
io.open(输出文件“w”,编码=“utf-8”)为o:
o、 书写(模板%(u“计数”,u“单词”))
o、 写入(模板%(u“-”*10,u“-”*30))
#分类可能很昂贵。排序前,筛选不需要的项目
#要处理,顺便说一句,将*count*放在元组前面。
filtered=[(c,w)表示结果中的w,c。如果c>1,则为items()
filtered.sort(reverse=True)
对于计数,筛选中的项目:
o、 写入(模板%(计数“.join(项)))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
sys.exit(main(“text.txt”、“out_text.txt”))
通过输入text.txt
文件:
周四早上八点,亚瑟感觉不太好
周四早上他错过了100欧元。这里是100欧元的欧元符号
测试非ASCII字符的编码,因为编码错误
只在星期四早上发生。
我得到以下输出\u文本
:
计算字数
---------- ------------------------------
星期四下午三点
星期四上午2点。
2 100 €
如果您是Python的完全初学者,尤其是因为您似乎正在进行NLP,我建议您直接切换到Python 3!如果您是Python的完全初学者,尤其是因为您似乎正在进行NLP,我建议您直接切换到Python 3!