Мне нужно иметь возможность создать временный файл с указанным именем файла и записать в него данные, а затем сжать указанный файл с именем файла вместе с другими файлами:
fd, path = tempfile.mkstemp(".bin", "filename", "~/path/to/working/directory/")
try:
with os.fdopen(fd, "wb") as tmp:
tmp.write(data)
with ZipFile("zip.zip", "w") as zip:
zip.write("filename")
zip.writestr("file2", file2_str)
zip.writestr("file3", file3_str)
# ...
finally:
os.remove(path)
Я думаю, что должен бытьнеправильно понимая, как работает mkstemp, я получаю сообщение об ошибке в первой строке кода:
FileNotFoundError: [Errno 2] No such file or directory: '~/path/to/working/directory/filenameq5st7dey.bin'
Похоже, что куча мусора добавляется к имени файла до того, как суффикс добавленв файле.Я пробовал это без суффикса, и я все еще получаю мусор в конце имени файла.
Помимо мусора в имени файла, почему я получаю ошибку «файл не найден» вместо временногофайл, созданный в моем каталоге с таким именем (плюс мусор)?