トップページ | Python 標準ドキュメント | 事例集 | アーティクル | リンク集 | ダウンロード | サイトマップ 
468x60サイズバナー・シリーズC Simple Fun and Indented
コンテンツ
はじめに - このサイトを立ち上げるに当って一番の問題はいかにラクしてコ...
お題:1 copy.py - 入力をそのまま出力へコピーするプログラムを作成してください...
お題:2 charcount.py - 入力ファイル内の文字数をカウントして出力するプログラムを作...
お題:3 linecount.py - 入力ファイル内の行数をカウントして出力するプログラムを作成...
お題:4 wordcount.py - 入力ファイル内の単語数をカウントして出力するプログラムを作...
お題:5 count.py - お題2、3、4で作成したcharcount.py、line...
お題:6 detab.py - テキストファイルを読み込み、タブをスペースに展開して出力す...
お題:7 entab.py - お題6の逆、スペースをタブに展開して、出力するプログラムを...
お題:8 compress.py - 入力されるデータを圧縮して出力するプログラムを作成してくだ...
お題:9 expand.py - お題8のcompress.pyで圧縮した結果を入力し、元の...
お題:10 crypt.py - 入力データを暗号化して出力するプログラムを作成してください...
アーティクル
 
Python Powered
Powered by Zope
PyJUG網元衆










お題: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)

印刷用ページ
Copyright © 2001-2012 Python Japan User's Group.

警告当サイトの文書・画像等のコンテンツの著作権は、各コンテンツの作成者、もしくは日本Pythonユーザ会に帰属します。
 また、日本Pythonユーザ会はサイト内のコンテンツに他のプログラミング言語からの乗り換えを誘発する恐れのある表現が多々あることを認め、予めお詫び申し上げます。