Я работаю с Python3 и хочу имитировать запись в файл, но без фактического создания файла.
Например, мой конкретный случай выглядит следующим образом:
merger = PdfFileMerger()
for pdf in files_to_merge:
merger.append(pdf)
merger.write('result.pdf') # This creates a file. I want to avoid this
merger.close()
# pdf -> binary
with open('result.pdf', mode='rb') as file: # Conversely. I don't want to read the data from an actual file
file_content = file.read()
Я думаю, StringIO
является хорошим кандидатом для этой ситуации, но я не знаю, как использовать его в этом случае, который будет записывать в объект StringIO. Это будет выглядеть примерно так:
output = StringIO()
output.write('This goes into the buffer. ')
# Retrieve the value written
print output.getvalue()
output.close() # discard buffer memory
# Initialize a read buffer
input = StringIO('Inital value for read buffer')
# Read from the buffer
print input.read()