簡體   English   中英

使bash從python函數輸出一個值(字符串)

[英]making bash output a value(string) from a python function

我有一個簡單的函數,可以簡單地打印“嗨!”。 我想使用 bash 來調用我的函數,而不是說 IDLE。 但是 bash 似乎不想打印從 hi(): 函數返回的輸出。

    #!/usr/bin/python
    def hi():
        print 'Hi!'

當我在 bash 中輸入 python hi.py(或 ./hi.py)時,這不會打印“嗨!”

但是,如果我不在函數中包含打印語句,而是在文件 hi.py 中作為單獨的打印“嗨!” 陳述; 然后 bash 確實輸出文本“嗨!” 因此。 從 bash 下面的代碼輸出嗨!

    #!/usr/bin/python
    print 'Hi!'

在 bash 中,我如何讓 bash 輸出來自函數 hi(): 在文件 hi.py 中的字符串?

謝謝

您需要在 hi.py 中執行此操作:

  def hi():
      print 'Hi!'

  if __name__ == '__main__':
      hi()

然后它將在 bash 中工作:

#!/bin/bash
python hi.py

你是在你的 python 腳本中調用函數嗎? 為了激活函數中的打印語句,您實際上需要調用該函數。 例如,為此文件運行python test.py打印“嗨!”

# Program named test.py
def output():
    print('Hi!')

output() # Calling the output function which will cause a print statement

在 bash 中調用這個 python 文件也有效。 例如,為此腳本調用bash call.sh工作並打印“嗨!” 到命令行

#!/bin/bash
# Script to call python file
python test.py

假設你想執行一個特定的函數。python 可執行文件接受 '-c' 標志來表明你正在傳遞它的代碼。 所以如果我的文件(hi.py)是:

def hi():
        print 'Hi!'

然后我可以這樣做:

$ python -c "execfile('hi.py'); hi()"

輸出

HI!

原因

當你執行一個 python 腳本時,你應該告訴它從哪里開始。因為Hi不是一個主函數,你需要手動調用hi()

def hi():
        print 'Hi!'
hi()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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