一個二進制文件,我想知道Python編程的一個很基本的東西,因爲我是一個很基本的程序員現在):我怎麼能保存的結果(無論是列表,字符串,或任何)到Python中的文件? 我一直在尋找很多,但我找不到任何好的答案。 我正在考慮「.write()」方法,但(例如)它似乎不適用於字符串,我也不知道它應該做什麼。 所以,我的情況是我有二進制文件,我想編輯,因此我發現很容易將它們轉換爲字符串,修改它們,現在我想將它們保存到i)回到二進制文件(jpegs圖像)和ii)在我想要的文件夾中。 我該怎麼做?請我需要一些幫助。保存字符串在Python
UPDATE
這裏是我試圖運行腳本:
import os, sys
newpath= r'C:/Users/Umberto/Desktop/temporary'
if not os.path.exists (newpath):
os.makedirs (newpath)
data= open ('C:/Users/Umberto/Desktop/Prove_Script/Varie/_BR_Browse.001_2065642654_1.BINARY', 'rb+')
edit_data= str (data.read())
out_dir= os.path.join (newpath, 'feed', 'address')
data.close()
# do my edits in a secon time...
edit_data.write (newpath)
edit_data.close()
我得到的錯誤是:
AttributeError: 'str' object has no attribute 'write'
UPDATE_2
我試圖使用泡菜模塊連載我的二進制文件,修改並保存到了最後,但還是沒有得到它的工作......這就是我一直在試圖至今:
import cPickle as pickle
binary= open ('C:\Users\Umberto\Desktop\Prove_Script\Varie\_BR_Browse.001_2065642654_1.BINARY', 'rb')
out= open ('C:\Users\Umberto\Desktop\Prove_Script\Varie\preview.txt', 'wb')
pickle.dump (binary, out, 1)
TypeError Traceback (most recent call last)
<ipython-input-6-981b17a6ad99> in <module>()
----> 1 pprint.pprint (pickle.dump (binary, out, 1))
C:\Python27\ArcGIS10.1\lib\copy_reg.pyc in _reduce_ex(self, proto)
68 else:
69 if base is self.__class__:
---> 70 raise TypeError, "can't pickle %s objects" % base.__name__
71 state = base(self)
72 args = (self.__class__, base, state)
TypeError: can't pickle file objects
另一件事我沒有」不過,如果我應該創建一個文件來支持(在我的情況下,我必須創建「out」,否則我就沒有pickle方法的正確參數),或者沒有必要。 希望我正在接近解決方案。
PS:我也試圖與pickle.dumps(),沒有實現雖然更好的結果...
'write'不能用字符串工作?無論如何,如果你想將列表等保存到一個文件中,最好使用[pickle](http://docs.python.org/2/library/pickle.html),但這與工作完全不同與JPEG或其他二進制文件 – 2013-03-04 15:40:00
我會編輯我的問題,以便您可以看到我想要做什麼,即使我知道我使用'.write()'模塊的部分是完全錯誤的,因爲我仍然不知道不知道如何使用它... – umbe1987 2013-03-04 15:44:27
你可以顯示你正在嘗試的代碼嗎?否則無法回答這個問題。 – 2013-03-04 15:45:05