我得到了一个脚本,该脚本应该花费执行python
-脚本所需的时间。为了简单起见,我只在命令行中提供了我想要作为参数执行的实际命令。你知道吗
假设我打电话:
python time.py python ratatosk.py < input.txt
在这里,python time.py
之后的所有内容都是我要执行的实际命令。你知道吗
但是,当使用以下命令读取sys.argv
时:
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
它只返回:
Number of arguments: 3 arguments.
Argument List: ['time.py', 'python', 'ratatosk.py']
剩下的争论都到哪里去了?它看起来像是<
不知怎的把它剥掉了。你知道吗
我正在MacBookPro上运行Python 2.7.3(v2.7.3:70274d53c1dd,2012年4月9日,20:52:43)。你知道吗
您需要避开<;标志。 尝试呼叫:
最好使用与<;不同的字符,以便运行此命令更容易
对于UNIX Shell,符号“<;”被认为是重定向。这意味着标准输入将来自一个文件输入.txt在磁盘上。你知道吗
由于符号是特殊的,shell将转换指定的命令,而到达内核的是一个不包含“<;”的已修改命令。你知道吗
您可以通过在“<;”之前添加\来转义它,这样它就不会作为shell的特殊字符出现,并最终作为系统参数传递给程序。你知道吗
你遇到了shell redirection
<
字符对shell有特殊的意义。它将导致被调用的程序从后面的内容而不是默认的stdin
(通常是键盘)读取。你知道吗Python只关心从
stdin
读取数据,而不管它来自哪里。它不应该出现在sys.argv
。你知道吗在您的示例中,
input.txt
很可能是用户向您的程序中输入数据的替代品,并且您的用法是正确的。你知道吗下面是一个简短的例子:
回音.py
输入文件
示例运行
相关问题 更多 >
编程相关推荐