如何从cgi.parse_multipart保存一个值

时间:2010-12-02 14:55:03

标签: python cgi

这是我的代码。

query = cgi.parse_multipart(rfile, pdict)
upfilecontent = query.get('file')

这里,我想将upfilecontent[0]保存到二进制模式的文件中。

TIA

3 个答案:

答案 0 :(得分:2)

由于该值已经是str,您所要做的就是以二进制模式打开文件并.write()

with file('name.bin', 'wb') as f: # 'w' for writing, 'b' for binary
    f.write(d['key_1'])

如果您想将文本重新解释为实际上是某种十六进制转储或其他内容,那么您必须更加具体。

答案 1 :(得分:0)

def writeBinaryData(binaryData):
    f = open("data.bin", "wb")
    f.write(binaryData)

文件模式字符串中的“b”指定您要读取/写入二进制数据。

但是,您的示例看起来像key_1的值是十六进制字符串“0x330xba”,您需要先将其转换为二进制文件。

答案 2 :(得分:0)

根据您提出的最新信息,您可能希望将字节流写入二进制文件。正如前面的答案所示,这很简单,只需确保首先以二进制模式打开文件(第二个参数中的尾部'b'打开)。

f = open("output_file_name", "wb")
f.write(upfilecontent[0])
f.close()

如果不起作用,请尝试打印repr(upfilecontent[0][:64])。如果结果看起来像是一系列不带前导0x的十六进制数字,那么在写入之前,您需要将其解码为字节值。