如何使用Python /Pâté在Kate中创建新的文件视图?

时间:2013-07-25 21:41:57

标签: python kde kate

我正在开发一个用Python编写的Kate插件,它会生成大量文本,无法在弹出窗口中显示。所以我希望Kate打开一个新的未命名文件并在其中显示文本。

有没有办法在Python中执行此操作(除了运行子进程echo text | kate --stdin)?

2 个答案:

答案 0 :(得分:1)

我自己发现了:

import kate
from kate import documentManager as dm
from PyKDE4.kdecore import KUrl


text = "Lorem ipsum dolor sit amet"

# Open a new empty document
doc = dm.openUrl(KUrl())
# Open an existing file
doc = dm.openUrl(KUrl('/path/to/file.ext'))

# Activate view
kate.application.activeMainWindow().activateView(doc)

# Insert text
pos = kate.activeView().cursorPosition()
doc.insertText(pos, text)

答案 1 :(得分:0)

您可以直接使用管道:

>>> f = os.popen("kate --stdin", "w")
>>> f.write("toto")
>>> f.close()

现在凯特打开一个带有“toto”的文件。

更现代的解决方案是使用subprocess模块:

>>> sp = subprocess.Popen(["/usr/bin/kate", "--stdin"], stdin=subprocess.PIPE, shell=False)
>>> sp.stdin.write("toto")
>>> sp.stdin.close()

如命令中所指定,它不使用shell。