在 Internet 上搜索使用 Python 访问 Outlook PST 文件的结果很少(而且大多数显示的内容都已过时)。有谁知道如何在有或没有图书馆的情况下阅读 PST?不幸的是,我的编程能力不够好,无法在没有库的帮助下构建 PST 阅读器。
我的目标是获取有关内容的以下信息:
我已经尝试过以下操作:
libpff / pypff:崩溃并且似乎在执行某些操作之前读取内存中的整个文件(没有好的解决方案,因为 PST 文件保存在缓慢的网络存储上)。
Libratom:与基于 libpff 的问题相同。
Libpst:不清楚如何使用它/作为二进制文件提供(没有解释如何安装)/参见这篇文章的答案/似乎没有维护或更新。
win32(在 Outlook 中安装 PST):一个教程展示了如何将 PST 安装到本地安装的 Outlook 中并通过 MAPI 访问获取内容,但这也非常非常慢,而且不是一个好的解决方案,因为需要 Outlook。
Asponse Email Python:虽然文档不是很好,但一开始就有希望(没有 Python 示例/不同的命名,例如 PersonalStorage 对象和许多其他对象/每个文件夹 50 个项目后停止(可能是非免费版本的限制,但不清楚,因为出版商网站上缺乏解释)。
personalStorage = PersonalStorage.from_file(dataDir + "Outlook.pst")
folderInfoCollection = personalStorage.root_folder.get_sub_folders()
for folderInfo in folderInfoCollection:
print("Folder: " + folderInfo.display_name)
print("Total Items: " + str(folderInfo.content_count))
print("Total Unread Items: …Run Code Online (Sandbox Code Playgroud) 有没有办法在 PySimpleGUI 的多行小部件中获取光标的位置,存储它并将光标再次放回该小部件文本中的定义位置?
下面你可以看到我到目前为止编写的代码。我的目标是,当在上部窗口中键入“jk”时,光标会向下移动到输入行(有效)。用户可以在那里编写命令并完成输入(我还没有完成)。
现在的问题是如何让上方窗口中的光标跳回原来的位置?!
import PySimpleGUI as sg
layout = [ [sg.Multiline(key = 'editor',
size = (50, 10),
focus = True,
enable_events = True)],
[sg.InputText(key ='command', size = (45, 1), ),], ]
window = sg.Window('editor', layout)
while True:
event, values = window.read()
if 'jk' in values['editor']:
# delete jk and jump down in the command line #
window['editor'].update(values['editor'].replace('jk', ''))
window.Element('command').SetFocus(force = True)
if event in ('Close Window', None):
break
window.close()
Run Code Online (Sandbox Code Playgroud)
任何帮助都是值得赞赏的,因为没有关于在 PySimpleGui 中设置或获取光标位置的文档。提前致谢!