shell中执行的程序可以读写数据。当一个程序——类似上面的script.py——输出一些内容的时候,内容会出现在shell中。之前的程序输出了一个字符串“Hello Jenny!”并显示在shell中。shell的屏幕通常被称为标准输出(standard output)。
之前,我们使用符号>重定向输出,将echo命令的结果写入文件当中。
在shell中尝试如下命令:
这次,script.py程序的结果没有输出到shell的屏幕上,而是被写入了一个新文件greeting.txt中。
使用符号>,我们可以将程序的输出重定向到一个新文件。如果目标文件已经存在,则它将被覆盖。我们还可以使用符号>>将数据附加到现有文件中,而不是创建一个新文件:
这个技术很有用,之后我们将用它来将程序运行的结果写入外部文件。
与重定向shell的标准输出类似,我们也可以重定向shell的输入。让我们创建一个新的脚本。它不从程序的实参中读取名称,而是让用户输入自己的名称。首先,创建一个新的空文件:
打开文件,输入以下代码:
如果运行这个新脚本,它会提示我们输入名称:
这个程序从标准输入(standard input)——shell——中读取名称。我们必须在shell中写下名称,并按返回键,让程序读取它。我们可以将程序的输入重定向为一个文件,这次是使用符号<。在这种情况下,程序会读取文件的内容,而不是从shell中读取。
让我们在新文件中写入一个名称:
现在,让我们将程序的输入重定向为这个文件:
这一次,当程序提示输入名称时,我们不必输入任何内容,shell会直接读取name.txt文件的内容。
我们将在之后编写的应用程序将会使用输入重定向,将文件内容读取到我们的Python程序中。