как сохранить значение из cgi.parse_multipart - PullRequest
0 голосов
/ 02 декабря 2010

вот мой код.

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

здесь, я хочу сохранить upfilecontent[0] в файл в двоичном режиме.

ТИА

Ответы [ 3 ]

2 голосов
/ 02 декабря 2010

Поскольку значение уже равно str, все, что вам нужно сделать, это открыть файл в двоичном режиме и .write() it:

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

Если вы хотите интерпретировать текст какна самом деле это какой-то шестнадцатеричный дамп или что-то еще, тогда вам нужно быть более конкретным.

0 голосов
/ 02 декабря 2010

Из последней информации в вашем вопросе звучит так, будто вы хотите записать поток байт в файл в двоичном формате. Как показали более ранние ответы, это легко, просто убедитесь, что сначала открыли файл в двоичном режиме (завершающий 'b' во втором аргументе для открытия).

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

Если это не сработает, попробуйте распечатать repr(upfilecontent[0][:64]). Если результат выглядит как серия шестнадцатеричных цифр без начальных 0x, то перед записью вам нужно будет декодировать его в байтовые значения.

0 голосов
/ 02 декабря 2010
def writeBinaryData(binaryData):
    f = open("data.bin", "wb")
    f.write(binaryData)

«b» в строке режима для файла указывает, что вы хотите читать / записывать двоичные данные.

Тем не менее, ваш пример выглядит так, как будто значение key_1 является шестнадцатеричной строкой "0x330xba", которую вам сначала нужно преобразовать в двоичный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...