Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将打印输出重定向到Python中的.txt文件_Python_Parsing_Text - Fatal编程技术网

将打印输出重定向到Python中的.txt文件

将打印输出重定向到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

我是Python的初学者。在这个问题上,我从stackoverflow的答案中尝试了许多方法,但它们在我的脚本中都不起作用。
我有这个小脚本可以使用,但是我不能得到巨大的结果到.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!