我对linux和python不太熟悉。我正在学习这个类,它有python上的一个反向索引程序的示例代码。我想知道如何运行和测试代码。这是提供给我的代码。在
这是映射文件的代码。(倒置的_指数_地图.py)在
import sys
for line in sys.stdin:
#print(line)
key, value = line.split('\t', 1)
for word in value.strip().split():
if len(word) <=5 and len(word) >= 3:
print '%s\t%s' % (word, key.split(':', 1)[0]) #what are we emitting?
这是reduce程序的代码。(倒置的_指数_减少.py)在
^{pr2}$它不是一个可执行文件,所以我尝试了
chmod +x inverted_index_map.py
然后我试着用:
./inverted_index_map.py testfilename.txt
但我不确定程序是否在等待键盘上的某种输入。所以我的问题是如何测试这些代码并查看结果?我真的不熟悉python。在
这两个程序是作为命令行工具编写的,这意味着它们从stdin获取输入并显示到stdout。默认情况下,这意味着它们从键盘获取输入并在屏幕上显示输出。在大多数linuxshell中,您可以通过使用
<file.txt
从file.txt
获取输入,并使用>file.txt
将输出写入file.txt
,从而更改输入的来源和输出的位置。另外,您可以使用firstcommand | secondcommand
使一个命令的输出成为另一个命令的输入。在另一个问题是您发布的脚本没有
#!
(shebang)行,这意味着您需要使用python inverted_index_map.py
来运行程序。在如果要使用来自
testfilename.txt
的输入运行inverted_index_map.py
,并在屏幕上看到输出,则应尝试运行:要运行},您应该尝试运行:
^{pr2}$inverted_index_map.py
,然后运行inverted_index_reduce.py
,输入来自testfilename.txt
,输出写到{您需要将文件作为标准输入传入,如下所示
或者在python文件前面加上
^{pr2}$#!/usr/bin/python
或#!/usr/bin/env python
,然后chmod +x
它,您就可以运行了或者
这是Writing an Hadoop MapReduce Program in Python推荐的。在
您需要使用
python
命令运行脚本,以调用python解释器并将脚本的路径作为参数传递。看看这篇文章,我想它会帮助你开始:http://pythoncentral.io/execute-python-script-file-shell/
相关问题 更多 >
编程相关推荐