2016-10-27 12 views
0

次のコードを使用してターミナルに印刷できない理由がわかりません。なぜPythonスクリプトで端末に印刷できないのですか?

#!/usr/bin/env python3 
import sys 
def main(): 
    sys.stdout.write("Hello") 

私はちょうどに行く、Pythonのファイルが見つかったディレクトリに移動し、ファイルの実行可能ファイルを作り、

./filename 

ターミナル印刷物の何も実行しないことにより、ターミナルからプログラムを実行していますよ改行。 sys.stdout.write( "string")を使用していない場合は、ターミナルにどのように印刷しますか?

+0

Pythonではこれほど多くのことをやっていませんが、定義した後に 'main()'を呼び出す必要はありませんか?あるいは 'print(" Hello ")'を 'main()'関数に制限することなく直接出力することもできます。 – Wildcard

+0

また、Bash、Sed、Awkをやっているのでなければ、プログラミングの質問はStackOverflow.comでもっとうまくいきます。しかし、サイトへようこそ。 :) – Wildcard

+0

暖かい歓迎ありがとう:D –

答えて

5

まず、Unix/Linuxシェルプログラミングに固有のものでない限り、Stackoverflowのプログラミングに関する質問をしてください。

デフォルトでは、Pythonはmain(またはその他の)関数を実行しません。
あなただけ行うことができ、次のいずれか

#!/usr/bin/env python3 
import sys 
sys.stdout.write("Hello") 

たり、機能を維持しますが、スクリプトが実行されたときに、それをコールする場合:

#!/usr/bin/env python3 
import sys 

def main(): 
    sys.stdout.write("Hello") 

if __name__ == '__main__': 
    main() 

あなたが行っている場合は、2番目のメソッドを使用することをスクリプトを他のファイルにインポートします。それ以外の場合は、最初のファイルを使用します。

また、デフォルトでstdoutに書き込むPython print関数を使用することもできます。

+0

ありがとうございました。 また、間違った場所に投稿して申し訳ありませんが、これらのフォーラムはあまり使用していません。 私は将来の投稿のために正しい領域にとどまるように努めます。 –

+0

@ LeventeMakai、素晴らしい。スタックExchangeサイトは、従来の意味では実際にはフォーラムではありません。彼らは質疑応答サイトです。 [ツアーページ](http://unix.stackexchange.com/tour)から始め、[ヘルプセンター](http://unix.stackexchange.com/help)を見て、その動作を確認することをおすすめします。 1つは、最初に答えが与えられた場合、答えの左側にあるチェックマークをクリックして問題を解決します。 :) – Wildcard

関連する問題