Python脚本图像保存目录/文件名错误

Posted

技术标签:

【中文标题】Python脚本图像保存目录/文件名错误【英文标题】:Python Script Image Save Directory/Filename Error 【发布时间】:2013-04-16 22:57:53 【问题描述】:

我正在尝试保存图像,但我收到一条错误消息,指出没有这样的文件或目录,即使我已经保存了图片。

import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
import ctypes, time
import urllib

while 1:
    font_size = 50

    font = ImageFont.load_default() 
    img = Image.open('bg.bmp')
    draw = ImageDraw.Draw(img)

    draw.text((300, 500), 'Period 1: ')
    draw.text((300, 550), 'Period 2: ')
    draw.text((300, 600), 'Period 3: ')
    draw.text((300, 650), 'Period 4: ')
    draw.text((300, 700), 'Period 5: ')
    draw.text((300, 750), 'Period 6: ')
    draw = ImageDraw.Draw(img)
    draw = ImageDraw.Draw(img)
    img.save("mod_bg.bmp")





pathToBmp = "C:\Documents and Settings\User\My Documents\My Pictures\ScreenShot.bmp"
SPI_SETDESKWALLPAPER = 20  
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, pathToBmp , 0)

quit()

这是错误信息

Traceback (most recent call last):
File "C:\Documents and Settings\User\Desktop\Project.py", line 12, in <module>
img = Image.open('bg.bmp')
File "C:\Python27\lib\site-packages\PIL\Image.py", line 1952, in open
fp = __builtin__.open(fp, "rb")
IOError: [Errno 2] No such file or directory: 'bg.bmp'

【问题讨论】:

【参考方案1】:

您没有指定完整路径,因此 Python 正在当前工作目录中查找文件,可能与您的脚本所在的目录相同。把bg.bmp放在那里,否则指定正确的路径。

另外,由于您使用的是 Windows,请在命令行窗口中执行 dir 并确保您用于制作该图像的任何程序都没有添加额外的扩展名并且该文件实际上并未命名为 bg.bmp.bmp 或东西。

【讨论】:

我不明白:OP 想要保存一个文件,这意味着该文件以前可能不存在。为什么 OP 那么“把bg.bmp”放在任何地方?如果文件不存在,不应该在保存时自动创建文件吗? 当他试图读取文件bg.bmp时出现错误。 bg.bmp 不是他所期望的。他无法到达写入文件的部分,因为他在尝试读取要修改的文件时出错。

以上是关于Python脚本图像保存目录/文件名错误的主要内容,如果未能解决你的问题,请参考以下文章

'PermissionError:[Errno 13]权限被拒绝',使用批处理文件运行python脚本后

Pytho之Django

如何在命令行里运行python脚本

将图像从 Subreddit 保存到文件夹 python

节点无法读取python保存的文件

从路径“文件”下载保存到“其他目录”python脚本问题