2015-12-14 35 views
5

私はBox Python APIを使っていくつかのツールを書いています。したがって、それらのうちの1人はBoxにファイルをアップロードすることです。オブジェクトファイルとしてStringIOを使用します。 私はローカルにファイルを読み込み、StringIOバッファにその内容を記述し、次のコードに示すように、Box APIにそれを渡す必要があります。十分なファイルから読み込んでStringIOに書き込む - Python

def upload_file(self, filename, folder_id='0'): 
    assert self.client is not None 
    try: 
     stream = StringIO.StringIO() 
     # replace this line a file read 
     stream.write('Box Python SDK Test!') 
     stream.seek(0) 
     box_file = self.client.folder(folder_id=folder_id).upload_stream(
                 stream, filename, 
                 preflight_check=True) 
     return box_file.name 
    except BoxAPIException, e: 
     self.log.exception(e) 

シンプルな、どのように私はローカルファイルから読み込むことができ、バッファーStringIOに書き込みますか?

+0

実際にStringIOが必要な場合(ファイルオブジェクトがそうする可能性が高い)、 'stream.write(open(filename).read())'を実行してください。 – tdelaney

答えて

3

StringIOインスタンスではなく、開いているファイルを提供できるはずです。

stream = open('mylocal_file') 
関連する問題