| トップページ | Python 標準ドキュメント | 事例集 | アーティクル | リンク集 | ダウンロード | サイトマップ | |
![]() |
![]() |
|
お題:1 copy.py入力をそのまま出力へコピーするプログラムを作成してください(入力は全て標準入力、出力は標準出力)。UNIXのコマンドcatに相当するプログラムです。 takinaka at cp.jp.nec.comさんのお答えtakanakaさんのコードはC/C++やJavaなどの言語に慣れた人にとってはおそらく一番分かり易い書き方だと思います。ただしこのように1バイトづつ処理する方法はスピードが遅くなってしまいます。
import sys
def getchar():
c = sys.stdin.read(1)
if len(c) < 1:
raise EOFError
return c
putchar = sys.stdout.write
try:
while 1:
putchar(getchar())
except EOFError:
pass
kankun at osa.att.ne.jpさんのお答えいきなり短くなっています。Pythonでよく見かける書き方です。print文の最後には改行を抑制するカンマを付けます。 import sys print sys.stdin.read(), t-toda at sbd.nnes.nec.co.jpさんのお答えimport sys import shutil shutil.copyfileobj(sys.stdin, sys.stdout) ransui at isrf.homeip.netさんのお答え
import sys
import types
def copyfile(info, outfo):
if types.FileType != type(info) or types.FileType != type(outfo):
return None
outfo.write(info.read())
if __name__ == "__main__":
copyfile(sys.stdin, sys.stdout)
VED03370 at nifty.ne.jpさんのお答え
import fileinput
for l in fileinput.input():
print l,
もひとつtakinaka at cp.jp.nec.comさんから再利用性にこだわってみました。
def copyfile(read, write):
write(read())
if __name__ == '__main__':
import sys
copyfile(sys.stdin.read, sys.stdout.write)
|
|
|
|
|
|
また、日本Pythonユーザ会はサイト内のコンテンツに他のプログラミング言語からの乗り換えを誘発する恐れのある表現が多々あることを認め、予めお詫び申し上げます。 |