簡體   English   中英

從shell運行Python腳本時出錯

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

使用pypython或者在特定系統上運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM