首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中截图自Catalina以来在macOS上不再有效

在macOS Catalina及更高版本中,由于系统安全性的提升,Python的截图功能在默认情况下已被禁用。这是由于macOS的隐私保护功能限制了脚本语言对用户界面的访问权限。

然而,可以通过一些额外的设置和工具来实现在Python中截图的功能。以下是一种解决方法:

  1. 使用pyautogui库:pyautogui是一个Python库,提供了跨平台的自动化操作功能,包括截图功能。你可以使用pip命令安装pyautogui库:
代码语言:txt
复制
pip install pyautogui

使用pyautogui库进行截图的示例代码:

代码语言:txt
复制
import pyautogui

# 获取屏幕的尺寸
screen = pyautogui.size()

# 截取整个屏幕的截图
screenshot = pyautogui.screenshot()

# 保存截图
screenshot.save('screenshot.png')
  1. 修改系统隐私设置:你可以在系统偏好设置的安全性与隐私中,授予Python或你的Python脚本访问屏幕内容的权限。
  • 在"隐私"选项卡中选择"屏幕录制",并确保选中了你的Python解释器或脚本编辑器。
  1. 使用AppleScript:你还可以编写一个AppleScript脚本,然后通过Python调用该脚本实现截图功能。示例代码如下:
代码语言:txt
复制
import subprocess

def applescript_screenshot():
    applescript = """
    tell application "System Events"
        key code 123 using command down # Command + Left Arrow
        delay 1
        do shell script "screencapture -i ~/Desktop/screenshot.png"
    end tell
    """
    subprocess.run(['osascript', '-e', applescript])

# 调用AppleScript截图
applescript_screenshot()

这些方法可以帮助你在Python中实现截图功能,即使在macOS Catalina及更高版本上也可以正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券