Как перезаписать некоторые байты посреди файла с Python?

Я использую отдельный API для изменения размера изображений перед отправкой их в конечную точку. Вот фрагмент кода, у вас не должно возникнуть проблем с его адаптацией.

h = body['height']
w = body['width']
image = base64.b64decode(body['data'])
L = len(image)

image = np.fromstring(image, np.uint8)
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
(H, W, _) = image.shape
image = cv2.resize(image, (h, w,))
image = cv2.imencode('.jpeg', image)
data = base64.b64encode(image[1].tostring())

Полный пост здесь: https://medium.com/@julsimon/using-chalice-to-serve-sagemaker-predictions-a2015c02b033

20
задан Foggzie 28 December 2015 в 16:22
поделиться

3 ответа

Попробуйте это:

fh = open("filename.ext", "r+b")
fh.seek(offset)
fh.write(bytes)
fh.close()
35
ответ дан 29 November 2019 в 23:53
поделиться

Согласно эта страница Python можно ввести file.seek для поиска на смещение particualar. Можно затем записать то, что Вы хотите.

, Чтобы постараться не усекать файл, можно открыться, он с "+" затем ищет на правильное смещение.

5
ответ дан 29 November 2019 в 23:53
поделиться

Очень неэффективный, но я не знаю никакой другой путь прямо сейчас, это не перезаписывает байты в середине (как Пробелы Ben, которые каждый делает):

a=file('/tmp/test123','r+')
s=a.read()
a.seek(0)
a.write(s[:3]+'xxx'+s[3:])
a.close()

запишет 'xxx' при смещении 3: 123456789 --> 123xxx456789

0
ответ дан 29 November 2019 в 23:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: