如何在 mac osx 上的子进程中打开文件

2024-04-13

我想打开一个文件并等待下一条指令的执行,直到文件未关闭。我点击了链接如何在 mac OSX 10.8.2 上用 python 打开文件 https://stackoverflow.com/questions/19273210/how-to-open-a-file-on-mac-osx-10-8-2-inpython 但它不起作用。

subprocess.call(['open','-W',FileName])在文本编辑器中打开文件,但仅当文本编辑器从扩展坞强制退出时才执行下一条语句,即使我关闭了打开的文件。这意味着,它应该仅在文件关闭时执行下一条语句,然后文本编辑器应自动从扩展坞退出。
我也尝试过 Popen 但没有成功

ss=subprocess.Popen("~/Downloads/DeletingDocs.txt",shell=True)
ss.communicate()   

请建议一些方法


尝试将其另存为“EditOneAndQuit”,然后执行以下操作:

chmod +x EditOneAndQuit

然后从 Python 启动:

#!/bin/bash
# Start textedit in background
open "$1" &

# Wait till textedit has zero documents open
while true
do
sleep 1
docs=`osascript -e 'tell application "textedit" to get documents'`
if [ -z "$docs" ]; then
    # Kill off poor old textedit
    osascript -e 'tell application "textedit" to quit'
exit
fi
done

首先从 shell 尝试一下,创建一个文档并编辑它:

ls > fred.txt
./OpenOneAndQuit fred.txt

当您通过单击红色按钮关闭文档时,您应该会看到脚本和文本编辑一起退出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 mac osx 上的子进程中打开文件 的相关文章

随机推荐

  • OData 中的过滤器和集合

    这与 Azure 最近推出的搜索服务有关 该服务目前处于预览状态 我试图弄清楚如何将 OData 的过滤器与集合一起使用 我知道我可以这样做 filter Products any p p eq WidgetA 它将按 WidgetA 过滤
  • Python-如何获取文本文件中的行数[重复]

    这个问题在这里已经有答案了 我想知道是否可以在不使用命令的情况下知道有多少行包含我的文件文本 with open test txt as f text f readlines size len text 我的文件非常大 所以很难使用这种方法
  • 使用 C# 添加附件到电子邮件

    我正在使用此答案中的以下代码通过 Gmail 在 NET 中发送电子邮件 https stackoverflow com questions 32260 sending email in net through gmail 我遇到的问题是在
  • 调整文本区域大小以适合所有内容[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • Google Play 中的生产版和测试版

    我已在 Google Play 中以生产模式发布了一个应用程序 现在 我有一个新版本 我想以 Beta 模式为有限数量的私人 Beta 用户发布 有可能两者兼得吗 即生产模式下的版本 1 0 和测试模式下的版本 1 1 或者我应该维护一个不
  • Node.js 中 For 循环中的 async.waterfall

    使用时async waterfall https github com caolan async在一个for循环 看来for循环在嵌套之前迭代async waterfall完成所有步骤 如何避免这种情况 for var i 0 i lt u
  • NSString sizeWithAttributes:内容矩形

    如何获得 NSString 的大小 就好像它在 NSRect 中绘制一样 问题是当我尝试 NSString sizeWithAttributes 时 它返回一个 NSSize 就好像它具有无限宽度一样 我想给该方法一个最大宽度 有什么办法可
  • 检测机器人帐户是否离线/在线

    我正在使用presenceUpdate然而 它触发了两次 我被告知它正在发出我与机器人拥有的共享服务器的数量 目前我的代码输出online两次 我不确定如何让它只输出一次 if newPresence userID botid if new
  • 处理外部函数导入

    这可能是一个关于如何处理外部函数的导入和导出函数的相当普遍的问题 所以我有一个component像这样 import React Component from react import handleChange from path impo
  • 将 args 和 kwargs 规范化为参数规范形式

    我正在寻找一种方法 给定函数的签名 将其 args 和 kwargs 规范化 也就是说 函数签名中传入的任何 kwargs 都应转换为 args 例如 def myfunc a b 0 c 0 kwargs pass def canonic
  • 当构造函数抛出异常并使用自定义 new 时,C++ 如何释放内存

    我看到以下结构 new X将释放内存 如果X构造函数抛出 operator new 可以超载 运算符 new 重载的规范定义是void operator new size t c heap h 以及相应的operator delete 最常
  • MDX 内的 Gatsby 静态图像(gatsby-plugin-image)

    最近我开始使用 Gatsby 现在我正在尝试使用 MDX 在我的 MDX 文件中 我可以通过 GraphQL 使用 Gatsby 图像 但我想使用 gatsby plugin image 中的静态图像 但出现错误像这样 react devt
  • 使用 Xlib 在 python 中获取窗口位置和大小

    我需要找到窗口的位置和大小 但我不知道如何找到 例如 如果我尝试 id get geometry id is Xlib display Window 我得到这样的东西 data height 2540 width 1440 depth 24
  • GraphQLError:必须提供查询根类型

    我使用 NestJS TypeORM 和 GraphQL 作为我的后端 API 我收到以下错误 GraphQLError Object Query root type must be provided at SchemaValidation
  • 取该组的每个第一个元素

    如何使用 EF 5 获取组中的每个第一个元素 var result await context SomeDbSet Where GroupBy x gt new x SomeField Select x gt x First ToListA
  • 将内容添加到pyqt4滚动区域

    如何将内容添加到 pyqt4 中的滚动区域 我要自定义一个小部件吗 例如 如果我有一个数组或一个列表a 10 2 2 2 22 3 3 3 我应该如何在可滚动区域中显示变量 如果要将内容添加到滚动区域 则需要定义一个新的小部件并将其添加到滚
  • 基于值的 R 颜色散点图点

    我能够绘制散点图并根据一个标准对点进行着色 即我可以将所有 gt 3 的点着色为红色 其余点着色为黑色 我希望能够以这种方式为点上色 3 color red 其余为黑色 下面的代码完成了步骤 1 和 3 但我不确定如何合并步骤 2 的第二个
  • 单元测试验证是否调用了伴生对象方法(模拟伴生对象)

    当切换到 Kotlin 时 静态方法被移至伴生对象中 但是 没有明显的方法来对调用这些 静态方法 的其他方法进行单元测试 在Java中 我们可以使用PowerMockito的MockStatic SomeClass class 来验证被测方
  • 如何确定应用程序是作为移动应用程序还是桌面应用程序运行?

    我怎样才能知道当前的应用程序类型是什么 即它是在移动设备上运行还是作为桌面 Air 应用程序运行 我试过这个 if FlexGlobals topLevelApplicatoin as WindowedApplication desktop
  • 如何在 mac osx 上的子进程中打开文件

    我想打开一个文件并等待下一条指令的执行 直到文件未关闭 我点击了链接如何在 mac OSX 10 8 2 上用 python 打开文件 https stackoverflow com questions 19273210 how to op