printステートメントについて見ていく。
printステートメントとは
オブジェクトをテキストに変換して標準出力ストリームに書き込む文のこと。
printステートメントの書き方
ステートメント | 説明 |
---|---|
print spam, ham | sys.stdoutにオブジェクトを出力する。項目と項目の間(カンマの位置)に自動的にスペースが入る。 |
print spam, ham, | sys.stdoutにオブジェクトを出力する。項目と項目の間にスペースが入る。末尾のカンマは「改行文字が入らない」の意。 |
print >> myfile, spam, ham | オブジェクト(テキスト)をsys.stdout.writeではなくmyfile.writeに送る |
printステートメントのデフォルトの出力先はsys.stdoutである。sys.stdoutは標準出力を表す。
改行を入れたくない場合はステートメントの最後にカンマを入れる。
で、やってみっぺ。
>>> print "a","b",
a b
>>> print "a","b"
a b
トップレベルからでは改行されているのかされていないのかわからない・・・。
文字列フォーマットとprintステートメントのあわせ技
>>> print "Hello, %s" % "abc"
Hello, abc
>>>
ふーん。
同じことをsys.stdoutを使ってやってみる。
同じことをするにはsysモジュールをimportする。
>>> import sys
>>> sys.stdout.write('Hello, abc\n')
Hello, abc
うむ。できた。
出力先を変更する例
printステートメントの出力先をたとえばファイルにする場合。
>>> import sys
>>> sys.stdout = open('log.txt', 'a')
>>> print "aaa bbbb ccccc"
>>> sys.stdout = sys.__stdout__
>>> # ここでCTRL+D
$ cat log.txt
aaa bbbb ccccc
標準出力からlog.txtへ変更した。log.txtにはprintした値が書かれている。
最後のsys.stdout = sys.__stdout__は、sys.stdoutの値を変更したので、元に戻している。
まったく同じことを「>>」を使用して行うことができる。
>>> log = open('log.txt','a')
>>> print >> log, "a", "b", "c"
>>> print "a", "b", "c"
a b c
>>> log.close()
>>>
>>を使用すると標準出力も機能したままとなるので便利。
おしまい。
0 コメント:
コメントを投稿