[英]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.