У меня есть строка исходного кода Java на Python, которую я хочу скомпилировать, выполнить и собрать вывод (stdout и stderr). К сожалению, насколько я могу судить, для javac
и java
требуются настоящие файлы, поэтому мне нужно создать временный каталог.
Как лучше всего это сделать? Модуль tempfile, по-видимому, ориентирован на создание файлов и каталогов, которые видны только процессу Python. Но в этом случае мне нужно, чтобы Java тоже могла их видеть. Тем не менее, я также хочу, чтобы другие вещи обрабатывались разумно, если это возможно (например, удаление папки после завершения или использование соответствующей системной временной папки)
tempfile.mktemp()
просто дает вам строку. Эта строка представляет собой путь, который вы можете использовать для создания файла. Затем вы можете передать этот путьjavac
иjava
. - person zondo   schedule 05.03.2016tempfile.mktemp
устарел, потому что он не создает файл. Это приводит к опасности состояния гонки, потому что другой процесс может претендовать на то же случайно сгенерированное имя файла, прежде чем вы сможете его создать. - person Matti Virkkunen   schedule 05.03.2016