銀月の符号

Python 使い見習いの日記・雑記

レシピ追加、標準入出力をファイルにつなぎ換える

169:標準入出力をファイルにつなぎ換える』を追加。

通常用途では sys.stdout などを、望みのファイルに結びついているファイルオブジェクトで置き換える。これで十分。

import sys
fo = open('spam.txt', 'w')
sys.stdout = fo

本当ににつなぎ換えるには os.dup2 を使用。

import sys
import os
fd = os.open('spam.txt', os.O_WRONLY|os.O_CREAT)
os.dup2(fd, sys.stdout.fileno())