我想知道Python编程的一个非常基本的东西,因为我现在是一个非常基本的程序员:如何将结果(列表、字符串或其他)保存到Python中的文件中?
我一直在寻找,但找不到任何好的答案。
我在想“.write()”方法,但是(例如)它似乎不能处理字符串,我也不知道它应该做什么。
所以,我的情况是我有二进制文件,我想编辑,因此我发现很容易把它们转换成字符串,修改它们,现在我想保存它们I)回到二进制文件(jpeg图像)和ii)在我想要的文件夹。
我该怎么做?拜托,我需要帮助。
更新
下面是我要运行的脚本: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'
更新2
我试图使用pickle模块序列化我的二进制文件,修改它并在最后保存它,但仍然无法使它工作。。。这就是我到目前为止一直在尝试的: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)
in ()
----> 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方法的正确参数),或者没有必要。
希望我能找到解决办法。
备注:我也尝试了pickle.dumps(),但没有获得更好的结果。。。