вот мой код.Как сохранить значение cgi.parse_multipart
query = cgi.parse_multipart(rfile, pdict)
upfilecontent = query.get('file')
здесь, я хочу, чтобы сохранить upfilecontent[0]
в файл в двоичном режиме.
ТИА
вот мой код.Как сохранить значение cgi.parse_multipart
query = cgi.parse_multipart(rfile, pdict)
upfilecontent = query.get('file')
здесь, я хочу, чтобы сохранить upfilecontent[0]
в файл в двоичном режиме.
ТИА
Поскольку значение уже str
, все, что вам нужно сделать, это открыть файл в двоичном режиме и .write()
это:
with file('name.bin', 'wb') as f: # 'w' for writing, 'b' for binary
f.write(d['key_1'])
Если вы хотите повторно интерпретировать текст как на самом деле это какой-то гексагон, или что-то еще, тогда вам придется быть более конкретным.
def writeBinaryData(binaryData):
f = open("data.bin", "wb")
f.write(binaryData)
«b» в строке режима файла указывает, что вы хотите читать/записывать двоичные данные.
Однако, например, вы видите, что значение key_1 представляет собой шестнадцатеричную строку «0x330xba», которую нужно сначала преобразовать в двоичный.
Из последней информации в вашем вопросе звучит так, будто вы хотите написать байт поток в файл в двоичном формате. Как показали более ранние ответы, это легко, просто убедитесь, что сначала открываете файл в двоичном режиме (трейлинг «b» во втором аргументе для открытия).
f = open("output_file_name", "wb")
f.write(upfilecontent[0])
f.close()
Если это не сработает, попробуйте выполнить печать из repr(upfilecontent[0][:64])
. Если результат выглядит как серия шестнадцатеричных цифр без указания 0x
, тогда вам нужно будет декодировать его в байтовые значения перед записью.
0x330xba - это не двоичные данные, это своего рода гексагон. – 2010-12-02 14:57:38
Ваши «двоичные данные», то есть `` 0x330xba ..... `, выглядят как строковое представление из двух или более шестнадцатеричных чисел. Можете ли вы уточнить возможные значения и длину? – martineau 2010-12-02 15:15:51