假设我有一个 pdf 文件,我想在系统默认的 pdf 应用程序中的 Python 脚本中打开该文件。
首先,如果它保存在常规文件系统中,我只需像这样打开它:
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)
但是最后一步怎么做,也就是怎么在系统默认的pdfs应用中打开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)))