我需要一种从外部编辑器获取数据的方法。
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]
我个人认为应该有一个更优雅的方法。您知道,我需要与外部编辑器进行交互并获取数据。
您知道更好的方法/有更好的主意吗?
编辑:
Marcelo带我想到了使用
tempfile
进行此操作的想法。这是我的方法:
def _tempfile_write(input):
from tempfile import NamedTemporaryFile
x = NamedTemporaryFile()
x.file.write(input)
x.close()
y = open(x)
[snip]
这可以完成工作,但也不能令人满意。听说过产卵吗?
最佳答案
我建议使用列表,而不是字符串:
def _get_content(editor, initial=""):
from subprocess import call
from tempfile import NamedTemporaryFile
# Create the initial temporary file.
with NamedTemporaryFile(delete=False) as tf:
tfName = tf.name
tf.write(initial)
# Fire up the editor.
if call([editor, tfName]) != 0:
return None # Editor died or was killed.
# Get the modified content.
with open(tfName).readlines() as result:
os.remove(tfName)
return result
关于python - 从外部程序获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2576956/