Image.save() - 文件未找到错误

mbi*_*5tr 7 python screenshot tkinter python-imaging-library python-3.x

我有一个工具栏。它允许您一键截图:

def screenshot():
    try:
        os.mkdir(r"C:\Screenshots")
    except FileExistsError:
        pass
    
    global img
    img = ImageGrab.grab()
    global today
    today = time.strftime("%d_%B_%Y__%H_%m_%S")
    saveas=os.path.join(SaveDirectory, "Screenshot_" + today + ".jpg")
    img.save(saveas)
    bubble = Thread(target = balloon_tip, args = ("Saved!", "Screenshot was saved at C:\Screenshots"))
    bubble.start()
Run Code Online (Sandbox Code Playgroud)

但是我收到这个错误:

    Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Python3.6\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "C:\Python3.6\lib\threading.py", line 864, in run
        self._target(*self._args, **self._kwargs)
  File "C:\Users\mbilal25tr\Desktop\Python Projects\Toolbar py\toolbar.pyw", line 140, in screenshot
    img.save(saveas)
      File "C:\Python3.6\lib\site-packages\PIL\Image.py", line 1725, in save
    fp = builtins.open(filename, "w+b")
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Screenshot\\Screenshot_29_March_2017__19_03_01.jpg'
Run Code Online (Sandbox Code Playgroud)

但我不明白!不img.save()应该创建一个图像文件吗?为什么它在创建之前尝试打开它?我应该如何期望它找到它并运行而不会出现错误?

我正在使用Python 3。

小智 1

我认为你的变量有问题SaveDirectory,而不是函数有问题save。正如我从错误中看到的,SaveDirectory变量的值是C:\\Screenshot\\
,您想要保存该 img 的目录是C:\\Screenshots\\

及以下

这就是为什么你的程序找不到你想要保存的文件夹,因为“屏幕截图”和“屏幕截图”是与计算机完全不同的两个名称。
您需要做的就是修复SaveDirectory变量。