2011-11-06 4 views
3

私は、pdfsのシステムのデフォルトアプリケーションでPythonスクリプトで開きたいpdfファイルがあるとします。PyMongoのGridFSでファイルのGridOutインスタンスを開くにはどうすればよいですか?

まず、それが通常のファイルシステムに保存されます場合、私は単にこのようにそれを開くでしょう:

import os 
os.system('Open /Users/Doe/Documents/mypdf.pdf') 

第二に、私はGridFSでPDFファイルを保存したい場合は、私のようなGridFSに書き込むことができます、

myfile = fs.get(oid) 

しかし、私は最後のステップを行うことができますどのように:これは:

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) 

私は、このようなファイルを読み込むことができますつまり、システムのpdfsのデフォルトアプリケーションで、どのようにpdfファイルを開くことができますか?

EDIT:

今、私は一時ファイルに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))) 
+0

これまでに他に何かを見つけましたか? – Jeff

+0

この問題の解決策を見つけましたか? * [user3404455](http://stackoverflow.com/users/3404455/user3404455)の質問* –

答えて

0

IPC(プロセス間通信)のみ使用できます。 Python GridOutは定義上IPCではありません。ファイルシステムはIPCです。または、プログラムのstdoutをPDFプログラムの標準に接続します(プログラムがサポートしている場合)。

関連する問題