如何从给定的文件目录打开随机图像?

2024-09-29 07:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从这个目录打开图像,但无法打开。 它给出了以下错误:

WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect.

这是我的代码:

import os, random
random.choice(os.listdir("C:\\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds"+'png'))

在这里,在文件夹背景中有许多图像。我想随机的图像开着。但是运行程序时,我得到WindowsError。在

我做错什么了?在

编辑1

我试过了:

^{pr2}$

但是我得到了一个错误:

WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'C:\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds\*.png/.'

编辑2

我试过了:

import os, random

a=random.choice(os.listdir(r"C:\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds"))
os.open(a)

现在我没有错误,但它也没有打开图像。在

编辑3

我也尝试过:

 import random,os
folder= "C:\\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds"
a=random.choice(os.listdir(folder))
print(a)

from PIL import Image
file = folder+'\\'+a
Image.open(file).show()

    #os.open(a, os.O_RDWR)
    from PIL import Image
    file = folder+'\\'+a
    Image.open(file).show()

但再次出现以下错误:

Traceback (most recent call last): File "G:\Grade 12 Project\auto.py", line 4, in a=random.choice(os.listdir(folder)) WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'C:\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca'

这里(黄色突出显示部分)是存储图像的目录。在

Image of Directory


Tags: 图像importdefaultdataoslocalgoogleextensions
2条回答

请改用PIL。在

import os, random

folder=r"D:\Study\SO"

a=random.choice(os.listdir(folder))
print(a)

#os.open(a, os.O_RDWR)
from PIL import Image
file = folder+'\\'+a
Image.open(file).show()

资料来源: Open and display .png file in python using PIL


问题是a没有指向所选随机文件的绝对路径。在

  1. 在edit1中,“png”被连接起来,但是没有名为“backgroundspng”的文件夹
  2. 在edit2中,您没有给出os.open()的标志,它可以是found here。在
  3. 在编辑3中,请确保使用的是r-before字符串。在

在您的情况下,请使用以下方法:

^{pr2}$

您需要通过在字符串前面加上r来使用原始字符串:

random.choice(os.listdir(r"C:\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds"+'png'))

否则,您需要用另一个反斜杠来转义每个反斜杠。在

相关问题 更多 >