Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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
Linux如何传递日期命令';将python程序的输出作为输入作为命令行参数_Python_Linux_Pipe_Command Line Arguments - Fatal编程技术网

Linux如何传递日期命令';将python程序的输出作为输入作为命令行参数

Linux如何传递日期命令';将python程序的输出作为输入作为命令行参数,python,linux,pipe,command-line-arguments,Python,Linux,Pipe,Command Line Arguments,我是Linux的新手。我有一个非常简单的Python脚本,它接受命令行参数并打印它们。现在我只想将date命令的输出作为输入传递给这个Python脚本并打印它。Python脚本如下所示 import sys print "command line arguments recieved are" for i in range(0,len(sys.argv)) : print sys.argv[i] 在运行这个程序以便将date命令的输出传递给脚本时,我刚刚做了 date | python

我是Linux的新手。我有一个非常简单的Python脚本,它接受命令行参数并打印它们。现在我只想将
date
命令的输出作为输入传递给这个Python脚本并打印它。Python脚本如下所示

import sys
print "command line arguments recieved are"
for i in range(0,len(sys.argv)) :
   print sys.argv[i]
在运行这个程序以便将
date
命令的输出传递给脚本时,我刚刚做了

date | python exmp.py
这是将一个命令的输出作为程序输入传递的正确方法吗? 我的程序没有从date命令获取输入。我得到的输出如下所示

command line arguments recieved are
exmp.py

我真的不知道我做错了什么。请帮我解决这个问题。

如果您想将
日期的输出传递给python,您可以通过管道(使用
|
)传递,也可以作为命令行参数传递

考虑以下python程序:

import sys

print "Command line input:"
print sys.argv;

print ""

print "Standard input:"
print sys.stdin.read()
您可以使用以下命令行调用此程序:

echo "hmm, this is text" | python test3.py "`date`"
当我运行程序时,我得到:

Command line input:
['test3.py', 'Mon  9 Feb 21:10:00 AEST 2015']

Standard input:
hmm, this is text
日期周围的左引号指定应运行
date
,而不仅仅指文本
date
。date周围的双引号强制date的输出为传递给python的单个命令行参数。尝试删除外部引号、内部引号以及两者

首先执行
|
符号左侧的命令,然后将结果作为标准输入传递给右侧的程序。您可以使用以下选项,而不是
echo

date | python test3.py

如果您只想将日期输入python,请查看一些内置的python模块。

您将Unix shell的两种不同功能混合在一起

你所要求的可以像这样做

python exmp.py $(date)
或者,您可以将脚本更改为读取标准输入:

date | python -c 'import sys
for line in sys.stdin: print line'
表达式
$(date)
执行以下操作:运行括号中的命令,并用其输出替换括号表达式

有一个名为
xargs
的工具用于混合这两种功能:

date | xargs python exmp.py

从标准输入读取。您可能应该了解更多关于管道的信息,或者从python
import time;打印(time.strftime(“%d/%m/%Y”)