Linux 如何将日期命令的输出作为命令行参数传递给 python 程序的输入
Linux how to pass date command's output as input for a python program as command line argument
我是 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
我实在想不通自己做错了什么。请帮我解决这个问题。
如果您想将 date
的输出传递给 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)
执行command substitution:括号中的命令为运行,其输出代入括号表达式
有一个名为 xargs
的工具可以混合两者:
date | xargs python exmp.py
我是 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
我实在想不通自己做错了什么。请帮我解决这个问题。
如果您想将 date
的输出传递给 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)
执行command substitution:括号中的命令为运行,其输出代入括号表达式
有一个名为 xargs
的工具可以混合两者:
date | xargs python exmp.py