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