[英]Error running Python script from shell
我正在尝试将终端中编写的命令的输出通过管道传递给Python脚本。
例如:
ls | ./foo.py
我写了一个Python脚本来做同样的事情:
#foo.py
import fileinput
with fileinput.input() as f_input :
for line in f_input :
print(line,end='')
但这在我运行以下命令时似乎不起作用:
$ ls | sudo ./foo.py
我收到一条错误消息:
$ ./foo.py: command not found
我已经检查了工作目录,使用ls
命令时可以看到foo.py
,那么我在做什么错呢?
您必须将其通过管道传递到Python可执行文件,而不是文件名。 如错误所示,该文件名并不表示它知道的命令。
ls | py ./foo.py
使用py
或python
或者在特定系统上运行Python解释器。
好像您忘记了Shebang :
#!/usr/bin/env python3
import fileinput
with fileinput.input() as f_input :
for line in f_input :
print(line,end='')
还记得通过命令将其设置为可执行文件:
chmod +x foo.py
然后再次运行您的命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.