作者: Bruce.
日時: 2005/7/26(16:34)
Bruce.です。

from StringIO import StringIO

h = StringIO()
f = open("sample.txt", "w")

print >> h, "%s:%d: " % ("testfile1", 2001),
f.write(h.getvalue())
f.write("found text")
f.write("\n")

#h.seek(0)
h.truncate(0)

print >> h, "%s:%d: " % ("testfile2", 2051),
f.write(h.getvalue())
f.write("found text 2")
f.write("\n")

h.close()
f.close()

上記のスクリプトを実行すると、sample.txtに書き込まれるわけですが、
その結果が

testfile1:2001: found text
 testfile2:2051: found text 2

のように、2行目の頭になぜかスペースが入ってしまいます。

2つめのprint文のところで直接文字列をStringIOオブジェクトに出力したとき
にはこのスペースは入りません。

まあけちけちせずに新しくStringIOオブジェクトを作ってやれば問題ないので
すが、どうも気になります。

いじょ。