システムのデフォルトのPDFアプリケーションのPythonスクリプトで開きたいPDFファイルがあるとしましょう。
まず、通常のファイル システムに保存されている場合は、次のように単純に開きます。
import os
os.system('Open /Users/Doe/Documents/mypdf.pdf')
次に、pdf ファイルを GridFS に保存する場合は、次のように GridFS に書き込むことができます。
from pymongo import Connection
from gridfs import GridFS
db = Connection().text_database
fs = GridFS(db)
with open('/Users/Doe/Documents/mypdf.pdf') as mypdf:
oid = fs.put(mypdf)
次に、次のようにファイルを読み取ることができます。
myfile = fs.get(oid)
しかし、最後のステップ、つまり、システムのデフォルトの PDF アプリケーションで PDF ファイルを開くにはどうすればよいでしょうか。
編集:
ここで、GridOut インスタンスを一時ファイルに書き込み、その一時ファイルを開きます。ファイル システムへの書き込みの余分な手順を省略できると便利です。
import tempfile
temp_path = tempfile.mkdtemp()
with open(os.path.join(temp_path, myfile.filename), 'w') as f:
f.write(myfile.read())
os.system('open {}'.format(os.path.join(temp_path, myfile.filename)))