pickleで保存したデータベースファイルを開くプログラムを書いています。しかし、StringIO / cStringIOを使用してファイルからメモリにリストをロードしたい場合は、次のようになります。
Opening database...
Loading database into memory...
Traceback (most recent call last):
...
File "C:\myfile.py", line 17 in open_database
database.write(databasefile)
TypeError: must be string or read-only character buffer, not list
これは私のコードです:
def open_database(self):
print("Opening database...")
databasefile = open('database.dat', "r")
databasecontent = cPickle.load(databasefile)
databasefile.close()
print('Loading database into memory...')
database = cStringIO.StringIO()
database.write(databasecontent)
atexit.register(close_database)