如何解决如何使用 LibreOffice 宏将 os.system() 命令写入 python 脚本并执行它?
我是宏的新手。
目标:
在系统上本地制作 python 脚本并向其添加代码(以生成 shell),最后使用 LibreOffice 宏执行脚本。
代码:
Sub Main
Shell("bash -c 'touch openshell.py'")
Shell("bash -c 'echo import os > openshell.py'")
Shell("bash -c 'echo os.system("gnome-terminal 'sudo apt-get update'") >> openshell.py'")
Shell("bash -c 'python -m openshell.py'")
End Sub
错误:
BASIC Syntax error.
Parentheses do not match.
有趣的是,openshell.py 脚本已创建,import os 命令正在运行。
但是 " 在 Shell("bash -c 'echo os.system("gnome-terminal 'sudo apt-get update'") >> openshell.py'")
如何使用宏正确转义并将上述python代码添加到已经创建的openshell.py中而不会出错并执行它?
解决方法
Basic 中的字符串和文件处理语法很棘手。好消息是 LibreOffice 宏可以用 python 编写。使用 APSO 运行以下宏。
def create_and_run_script():
filename = "path/to/openshell.py"
with open(filename,'w') as out_file:
out_file.write("""
import os
os.system("gnome-terminal 'sudo apt-get update'")
""")
然后看What is the best way to call a script from another script?。
然而,这似乎不必要地复杂。下面的代码是一个完全合法的宏,可以使用 APSO 或工具 -> 宏 -> 运行宏运行。
import os
def do_update():
os.system("gnome-terminal 'sudo apt-get update'")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。