如何从 Python 内部在 Mac OS X 中截取屏幕截图:又名 Command-Control-Shift-4

2023-12-02

使用 Command-Control-Shift-4 可以截取屏幕截图区域/然后将其保存到剪贴板。 我想知道 Python 内部是否也可以实现同样的功能。理想情况下,可以在 Python 中以编程方式指定图像文件格式以及保存位置。有任何想法吗?

稍后编辑1

我已经找到了applescript除了这个脚本捕获整个屏幕之外,它几乎完成了所需的工作。我想将其限制在一个区域内。

tell application "System Events"
    keystroke (ASCII character 36) using {command down}
    delay 1
    keystroke space
end tell

稍后编辑2

下面的苹果脚本很好地完成了区域屏幕捕获(仍然无法控制捕获的图像的确切保存位置(默认情况下保存到用户的桌面)。

tell application "System Events"
    keystroke (ASCII character 36) using {command down}
    key code 4 using {command down, shift down}
end tell

问题是如何自定义输出文件路径位置......


似乎有一个标准实用程序称为screencapture在Mac上,你可以使用subprocess像这样称呼它:

from subprocess import call
call(["screencapture", "screenshot.jpg"])

有选项可以screencapture也可以指定一个特定的矩形:

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

如何从 Python 内部在 Mac OS X 中截取屏幕截图:又名 Command-Control-Shift-4 的相关文章

随机推荐

  • Facebook 评论插件 - 每个页面上都有相同的评论

    我网站上的 Facebook 评论效果很好 但当有人对一篇文章发表评论时 网站上的每篇文章都会出现 相同的评论 显然 我不希望这样 我所做的基本上是复制并粘贴在developers facebook com上提供的代码 div div
  • 如何在Python极坐标中添加持续时间到日期时间

    我想在日期 时间中添加以秒为单位的持续时间 我的数据看起来像 import polars as pl df pl DataFrame dt 2022 12 14T00 00 00 2022 12 14T00 00 00 2022 12 14
  • Python 入门:属性错误

    我是 python 新手 今天刚刚下载 我正在使用它来处理网络蜘蛛 因此为了对其进行测试并确保一切正常 我下载了示例代码 不幸的是 它不起作用并给了我错误 AttributeError MyShell 对象没有属性 已加载 我不确定代码本身
  • 通过 VSTS CI/CD 升级 Azure Service Fabric 时出错

    我正在使用 VSTS 来设置 CI CD 以进行服务结构构建和部署 第一次部署没有错误 但第二次更新部署给出了以下错误 ConfigPackage中的内容名称 Config 版本 1 0 0 20180312 1 服务清单中的 Sample
  • 苹果手表上的图像

    昨天我的申请被拒绝时遇到了一个问题 显然 这些图像并未显示在实际的 Apple Watch 上 但它们显示在模拟器中 我什至尝试重置模拟器 但无法复制苹果员工发生的问题 所以我只是想知道在苹果手表上添加 显示图像的正确方法是什么 这样它们才
  • spring jpa hibernate 具有更多数据源

    我必须在我的应用程序 spring 中使用两个不同的数据库和 Hibernate Jpa 我想直接为不同的数据源定义不同的表 所以我使用两个不同的持久性单元并尝试使用
  • OpenTsdb:度量和标签信息中是否允许空格字符

    我正在使用 openTsdb 并遇到了度量 标记 tagk 甚至值 tagv 中不允许空格字符的问题 有什么方法可以至少在标签的值中添加空格吗 我还提到 http opentsdb net docs build html user guid
  • Angular 通用服务器端渲染、元标签

    我将网站移至 Angular 通用 SSR 在我搬家的过程中 我遇到了一些问题 我认为 ng universal 可以解决这些问题 我想添加元标记 例如描述 关键字等 每个页面不同 使用titleService正如 Angular 所建议的
  • Unity3d - eulerAngles(本地和全局)与检查器中的完全不同

    在游戏对象的检查器中 我使用的起始旋转是 90 但是当我运行时print transform eulerAngles x 我得到 270 同上transform localEulerAngles x 如果我倾斜gameObject向下 检查
  • Hibernate 创建冗余的多对多表

    在开发 Spring Boot 应用程序时 我必须删除数据库并让 Hibernate 再次生成它hibernate hbm2ddl auto update 之后 我想确保它按照我想要的方式执行所有操作 因此我调用 MySQL Workben
  • 从 url 加载图像

    我有一个图像网址 我想在 ImageView 中显示此 URL 中的图像 但我无法做到这一点 如何才能实现这一目标 如果您根据按钮单击加载图像 则上面接受的答案非常好 但是如果您在新活动中执行此操作 它会使 UI 冻结一两秒 环顾四周 我发
  • 单击后如何关闭此菜单

    我正在尝试定制这个菜单 这是 html 标记 ul class topnav li a href home Home a li li a href news News a li li a href contact Contact a li
  • 通过 multipart-HTML-Post 上传 pdf 确实会更改文件

    我尝试使用以下代码通过 vba 的多部分上传 pdf Public Function sap upload ByVal par objectID As String ByVal par description As String ByVal
  • 使用 Systemjs-builder 为 Angular2 应用程序创建多个包

    我有一个可用的 Angular2 应用程序 其结构如下 app components moduleA moduleB shared app module ts app routing ts app component ts main ts
  • 线程和同步方法

    我有以下代码 public class MyThread extends Thread private int i public static int sum 0 public MyThread int k i k public stati
  • 如何使用 XSLT 更新 XML 中的单个值?

    我有一个巨大的 XML 文件 我想在其中更新单个值 有没有一种方法可以编写 XSLT 文件 只需进行简单的更改即可生成现有 XML 文件的精确副本 例如 假设我有以下 XML 并且我想将员工 Martin 的职位编号更改为 100 我该如何
  • 单击按钮时翻转 div 的内容

    我正在学习翻转 div 内容的 3D 效果 悬停时 下面的 div 代码可以完美运行 但我想要的是 如果有人只点击按钮翻转 那么 div 的翻转应该可以工作 我只需要单击按钮时才需要这种翻转效果 而不是悬停或其他任何东西
  • EJB 应用程序中的 CORBA 异常

    我遇到了 EJB Glassfish 的问题 我正在开发一个客户端 服务器应用程序 其中客户端创建一个实体对象 并且必须将其发送到服务器应用程序 服务器应用程序必须将该实体保留在其数据库中 我选择使用会话 bean 与服务器进行通信 我已经
  • 通过 cron 执行 PHP - 未指定输入文件

    我使用以下命令通过 cron 执行 PHP 文件 php q home seilings public html dvd cron mailer php 问题是我有一个包含在执行中的文件 该文件确定要加载哪个配置 如下所示 if strst
  • 如何从 Python 内部在 Mac OS X 中截取屏幕截图:又名 Command-Control-Shift-4

    使用 Command Control Shift 4 可以截取屏幕截图区域 然后将其保存到剪贴板 我想知道 Python 内部是否也可以实现同样的功能 理想情况下 可以在 Python 中以编程方式指定图像文件格式以及保存位置 有任何想法吗