Мне нужен способ получения данных из внешнего редактора.Получение данных из внешней программы
def _get_content():
from subprocess import call
file = open(file, "w").write(some_name)
call(editor + " " + file, shell=True)
file.close()
file = open(file)
x = file.readlines()
[snip]
Я лично считаю, что должен быть более элегантный способ. Видите ли, мне нужно взаимодействовать с внешним редактором и получать данные.
Знаете ли вы, что лучше подходит/имеет лучшие идеи?
EDIT:
Марсело привел меня на идее использования tempfile
за это.
Вот как я это делаю:
def _tempfile_write(input):
from tempfile import NamedTemporaryFile
x = NamedTemporaryFile()
x.file.write(input)
x.close()
y = open(x)
[snip]
Это делает работу, но и не вполне удовлетворительна. Слышал что-нибудь о нерестах? ..
Ваш вопрос довольно расплывчатым. Что именно вы пытаетесь выполнить и что вы считаете уродливым в этом подходе? «Мне нужно, чтобы пользователь вводил текст и получал этот текст в виде строки»? «Мне нужно, чтобы пользователь редактировал ранее существующий файл»? Вы спрашиваете, как создать новый процесс редактора или как получить вход от пользователя? – RarrRarrRarr
Я говорю о получении ввода от пользователя. :) Я признаю, что уродливое - это не правильное слово ... возможно, говоря: я ищу более элегантный способ сделать это (если есть). –