2014-09-04 113 views
0

我正在使用Dropbox API和Python。我沒有使用Dropbox API的問題,我可以毫無問題地完成所有認證步驟。Python:使用Dropbox API - 保存.ODT文件

當我使用此代碼:

pdf_dropbox = client.get_file('/Example.pdf') 
new_file = open('/home/test.pdf','w') 
new_file.write(pdf_dropbox.read()) 

我在路徑/home/test.pdf生成一個文件,這是一個PDF文件,內容顯示一樣的原件。

但是當我嘗試用.odt文件相同的代碼,它無法生成新的文件:

odt_dropbox = client.get_file('/Example.odt') 
new_file = open('/home/test_odt.odt','w') 
new_file.write(odt_dropbox.read()) 

這個新文件test_odt.odt有錯誤,我無法看到它的內容。

# With this instruction I have the content of the odt file inside odt_dropbox 
odt_dropbox = client.get_file('/Example.odt') 
  • 至極是保存一個odt文件的內容的最好方式?
  • 有沒有更好的方法來寫LibreOffice文件?

我會很感激的任何有益的信息,

感謝

回答

0

解決了,我忘了兩兩件事:

  1. 公開賽二進制寫作wb代替w

    文件

    new_file = open('/home/test_odt.odt','wb')

  2. 關閉創建後的文件:new_file.close(),使沖洗

全碼:

odt_dropbox = client.get_file('/Example.odt') 
new_file = open('/home/test_odt.odt','wb') 
new_file.write(odt_dropbox.read()) 
new_file.close() 
+1

我認爲你的意思'close'不'save'在你的代碼在這裏。另外,您可能想通過'with'使用上下文。這將只是'open('/ home/test_odt.odt','wb')as new_file:new_file.write(odt_dropbox.read())' – smarx 2014-09-04 15:25:46

+0

Thanks!我寫錯了,因爲你說'.save()'而不是'.close()'。現在它已經修復了。謝謝! – AlvaroAV 2014-09-05 10:22:32