python-3.x - os.system 的多行命令

标签 python-3.x tkinter pep8

我可能在这里遗漏了一些明显的东西,但搜索 google/so 并没有提供任何有用的东西。

我正在编写一个使用 tkinter 的 python 脚本的filedialog.askopenfilename打开文件选择器。没有深入细节,我有以下行,用于将文件选择器带到屏幕的前面(直接取自 this helpful answer ):

os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')

正如您从上面的代码片段中看到的那样,这一行对于 pep8 指南来说太长了,我想将其分解。

然而,尽管我尽了最大的努力,我似乎​​无法让它 split 。这是由于(我认为)该行包含单引号和双引号,不幸的是 os.system 似乎坚持它是单行。

我试过了
  • 三引号
  • 字符串文字修补(\ 在末尾,+ 在每行开头)
  • 每行三引号

  • 如果相关:使用 OSX 并运行 python 3.6.4。

    打破这条线的正确(理想情况下,最小)方法是什么?

    最佳答案

    使用大大改进的 subprocess模块通常是调用外部可执行文件的更好、更强大、更安全的方法。

    您当然可以使用 \n 传递变量在他们作为论据。

    注意,双 (())是因为第一个参数是一个元组。

    import subprocess
    subprocess.call((
        '/usr/bin/osascript', 
        '-e',  
        'tell app "Finder" to set frontmost of process "Python" to true',
        ))
    

    有时有理由通过 shell 调用,但通常不会。

    https://docs.python.org/3.6/library/subprocess.html

    关于python-3.x - os.system 的多行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50032845/

    相关文章:

    python - 如何在 Tkinter 中创建淡出效果?我的代码崩溃

    python - 重命名对象内部repr,name//tkinter问题

    python - Tkinter 在不丢失细节的情况下缩小图像

    python - 常量类实例是 PEP8 命名约定的异常(exception)吗?

    python - 函数名中的数字

    python - from x import y 适用于 Windows 但不适用于 Ubuntu

    python-3.x - Flask 获取和编辑值

    python - 如何包装大整数定义以符合 pep8?

    python - 无法加载 CIFAR-10 数据集 : Invalid load key '\x1f'

    python-3.x - curl 工作,但 python 请求失败并出现 SSLError