在linux上运行python程序

在linux上运行python程序,python,linux,mapreduce,inverted-index,Python,Linux,Mapreduce,Inverted Index,我不太熟悉linux和python。我正在学习这个类,它有python上的反向索引程序的示例代码。我想知道如何运行和测试代码。这是提供给我的代码 这是映射文件的代码。(反向索引映射.py) 它不是一个可执行文件,所以我尝试了 chmod +x inverted_index_map.py 然后,我尝试运行以下程序: ./inverted_index_map.py testfilename.txt 但我不确定程序是否正在等待键盘或其他什么输入。所以我的问题是如何测试这段代码并看到结果?我真的不熟

我不太熟悉linux和python。我正在学习这个类,它有python上的反向索引程序的示例代码。我想知道如何运行和测试代码。这是提供给我的代码

这是映射文件的代码。(反向索引映射.py)

它不是一个可执行文件,所以我尝试了

chmod +x inverted_index_map.py
然后,我尝试运行以下程序:

./inverted_index_map.py testfilename.txt

但我不确定程序是否正在等待键盘或其他什么输入。所以我的问题是如何测试这段代码并看到结果?我真的不熟悉python。

您需要使用
python
命令运行脚本,以调用python解释器并将脚本的路径作为参数传递。看看这篇文章,我认为它将帮助您开始:


您需要使用
python
命令运行脚本,以调用python解释器并将脚本的路径作为参数传递。看看这篇文章,我认为它将帮助您开始:


您需要像这样将文件作为标准输入传入

python inverted_index_map.py < testfilename.txt


这就是我的建议

您需要像这样将文件作为标准输入传入

python inverted_index_map.py < testfilename.txt


这就是我的建议

这两个程序是作为命令行工具编写的,这意味着它们从stdin获取输入并将其显示到stdout。默认情况下,这意味着它们从键盘获取输入并在屏幕上显示输出。在大多数Linux shell中,您可以通过使用
file.txt
file.txt
中写入输出来更改输入和输出的位置。此外,您可以使用
firstcommand | secondcommand
将一个命令的输出变为另一个命令的输入

另一个问题是,您发布的脚本没有
#(shebang)行,这意味着您需要使用
python inversed\u index\u map.py
来运行程序

如果要使用
testfilename.txt
中的输入运行
inversed_index_map.py
,并查看屏幕上的输出,应尝试运行:

python inverted_index_map.py <testfilename.txt
python inverted_index_map.py <testfilename.txt | python inverted_index_reduce.py >outputfile.txt

这两个程序是作为命令行工具编写的,这意味着它们从stdin获取输入并将其显示到stdout。默认情况下,这意味着它们从键盘获取输入并在屏幕上显示输出。在大多数Linux shell中,您可以通过使用
file.txt
file.txt
中写入输出来更改输入和输出的位置。此外,您可以使用
firstcommand | secondcommand
将一个命令的输出变为另一个命令的输入

另一个问题是,您发布的脚本没有
#(shebang)行,这意味着您需要使用
python inversed\u index\u map.py
来运行程序

如果要使用
testfilename.txt
中的输入运行
inversed_index_map.py
,并查看屏幕上的输出,应尝试运行:

python inverted_index_map.py <testfilename.txt
python inverted_index_map.py <testfilename.txt | python inverted_index_reduce.py >outputfile.txt

那么使用./和使用python命令有什么不同呢?这缺少了“如果程序正在等待键盘或其他东西的输入”的问题。那么使用./和使用python命令有什么不同呢?这缺少了“如果程序正在等待来自键盘的某种输入或其他内容”回溯(最后一次调用):文件“inversed_index_map.py”,第6行,在键中,value=line.split('\t',1)ValueError:需要超过1个值才能解包我在尝试运行您发出的命令时遇到此错误。这现在是调试python程序的问题。您可以将行
sys.stderr.write(repr(line))
放在给出错误的行上方,以准确查看行中的内容(而不污染sys.stdout),或
sys.stderr.write(str(line.split('\t',1))
查看您试图拆分成的内容。回溯(最后一次调用):文件“inversed\u index\u map.py”,第6行,在键中,值=line.split('\t',1)ValueError:需要超过1个值才能解包我在尝试运行您发出的命令时遇到此错误。这现在是调试python程序的问题。您可以将行
sys.stderr.write(repr(line))
放在给出错误的行上方,以准确查看行中的内容(而不污染sys.stdout),或
sys.stderr.write(str(line.split('\t',1))
以查看要拆分成的内容。
python inverted_index_map.py <testfilename.txt | python inverted_index_reduce.py >outputfile.txt