第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python 屏幕截圖

Python 屏幕截圖

白衣非少年 2023-07-11 15:39:24
我正在嘗試編寫一個(gè)程序來使用全局熱鍵進(jìn)行屏幕截圖。下面是對(duì)應(yīng)的代碼:from datetime import datetimeimport osfrom pynput import keyboardimport pyautoguiimport pathlibdef on_activate():    today = datetime.now()    d = today.strftime("%Y-%m-%d-%H-%M-%S")    myScreenshot = pyautogui.screenshot(region=(200,200, 1720, 800))    time_stamp = '{:%y%d%m}'.format(today)    fpath = pathlib.Path("C:","Users","Desktop","TestScreenCap", time_stamp)    if not os.path.exists(fpath):        os.makedirs(fpath)    myScreenshot.save(pathlib.Path(fpath,d,".jpg"))def for_canonical(f):    return lambda k: f(l.canonical(k))hotkey = keyboard.HotKey(    keyboard.HotKey.parse('<ctrl>+<alt>+h'),    on_activate)with keyboard.Listener(        on_press=for_canonical(hotkey.press),        on_release=for_canonical(hotkey.release)) as l:    l.join()錯(cuò)誤信息:Unhandled exception in listener callbackTraceback (most recent call last):  File "C:\Users\PycharmProjects\untitled1\venv\lib\site-packages\PIL\Image.py", line 2138, in save format = EXTENSION[ext]KeyError: ''The above exception was the direct cause of the following exception:Traceback (most recent call last):  File "C:\Users\PycharmProjects\untitled1\venv\lib\site-packages\pynput\_util\__init__.py", line 211, in inner    return f(self, *args, **kwargs)  File "C:\Users\PycharmProjects\untitled1\venv\lib\site-packages\pynput\keyboard\_win32.py", line 280, in _process self.on_press(key)  File "C:\Users\PycharmProjects\untitled1\venv\lib\site-packages\pynput\_util\__init__.py", line 127, in inner    if f(*args) is False:  File "C:/Users/PycharmProjects/untitled1/123.py", line 18, in <lambda>    return lambda k: f(l.canonical(k))  File "C:\Users\PycharmProjects\untitled1\venv\lib\site-packages\pynput\keyboard\__init__.py", line 182, in press
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

這里是固定代碼:


from datetime import datetime

import os

from pynput import keyboard

import pyautogui

import pathlib


def on_activate():

    today = datetime.now()

    d = today.strftime("%Y-%m-%d-%H-%M-%S")

    myScreenshot = pyautogui.screenshot(region=(200,200, 1720, 800))

    time_stamp = '{:%y%d%m}'.format(today)

    fpath = pathlib.Path("C:\\","Users","Desktop","TestScreenCap", time_stamp)

    if not os.path.exists(fpath):

        os.makedirs(fpath)

    myScreenshot.save(pathlib.Path(fpath,d + ".jpg"))


def for_canonical(f):

    return lambda k: f(l.canonical(k))


hotkey = keyboard.HotKey(

    keyboard.HotKey.parse('<ctrl>+<alt>+h'),

    on_activate)

with keyboard.Listener(

        on_press=for_canonical(hotkey.press),

        on_release=for_canonical(hotkey.release)) as l:

    l.join()

問題是您正在使用:


myScreenshot.save(pathlib.Path(fpath,d,".jpg"))


該函數(shù)pathlib.Path(fpath,d,".jpg")將字符串添加\到每個(gè)字符串的末尾,因此您嘗試保存文件的路徑是:


C:Users\Desktop\TestScreenCap\200309\2020-09-03-16-50-20\.jpg


正如您所看到的,文件名是引發(fā)異常的擴(kuò)展名。


只需替換為:myScreenshot.save(pathlib.Path(fpath,d + ".jpg"))


指定路徑的另一個(gè)問題是它C:被解釋為Drive,所以當(dāng)你保存函數(shù)時(shí),保存到你的程序當(dāng)前運(yùn)行的路徑,而不是真正的指定路徑。要修復(fù)此部分,只需替換C:為C:\\.


閱讀您的代碼,我認(rèn)為您希望將屏幕截圖保存在當(dāng)前用戶桌面中,如果是這樣,請(qǐng)將行:替換為fpath = pathlib.Path("C:\\","Users","Desktop","TestScreenCap", time_stamp)并fpath = pathlib.Path(os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop'), time_stamp)在頂部添加import os. 有了這個(gè),你就不需要關(guān)心這條道路的正確世代。


查看完整回答
反對(duì) 回復(fù) 2023-07-11
  • 1 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)