如果这是重复的话,我道歉,我找不到这个问题的任何其他例子。
我正在尝试编写一个自然语言识别程序,我正在阅读一篇博客文章,其中有人试图做类似的事情,并建议使用这两行来捕获输出。
#capture output of script
./get-language.py | tee preptxt
我无法弄清楚这段代码试图做什么。我假设它正在运行get-language文件,但该语法对我来说看起来不正确。有人能指出我正确的方向吗?
答案 0 :(得分:5)
在Unix系统上,您可以使用vagrant@homestead:~$ date >> /home/vagrant/Code/CRONTRACK.txt^M
vagrant@homestead:~$ cat /home/vagrant/Code/CRONTRACK.txt^M
Thu Dec 3 19:53:06 UTC 2015
运行可执行文件。
这不是python特有的。
由于/path/to/my/executable
是当前工作目录,因此您正在执行位于当前目录中的.
脚本。
但是,您需要做两件事才能使脚本正常工作:
这是你脚本的第一行,它告诉shell要使用哪个程序。
要使用get-language.py
使用中的第一个python解释器:
PATH
您需要允许执行您的脚本。这可以通过#!/usr/bin/env python
:
chmod
最后一部分是所谓的管道操作。 如果你打两个这样的程序:
chmod +x myscript.py
$ program_a | program_b
的输出(标准输出)被输入program_a
。
答案 1 :(得分:2)
这是一个shell的东西,而不是Python。 .
是当前目录;你从那里开始运行get-language.py
。
答案 2 :(得分:1)
这不是一行python,而是一个shell脚本。
它正在运行一个名为get-language.py的脚本(我假设在该博客的其他位置进行了描述,并进行了实际的语言处理),然后通过unix命令行程序{{3将输出存储在文件中。
Piping获取一个程序的输出,并将其用作另一个程序的输入。