3

我正在尝试从此目录打开图像,但无法打开。它给了我以下错误:

WindowsError:[错误 123] 文件名、目录名或卷标语法不正确。

这是我的代码:

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

我试过这个:

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

但是我得到了错误:

WindowsError:[错误 123] 文件名、目录名或卷标语法不正确:'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(最近一次调用最后一次):文件“G:\Grade 12 Project\auto.py”,第 4 行,在 a=random.choice(os.listdir(folder)) WindowsError: [Error 123] The filename, directory name ,或卷标语法不正确:'C:\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca'

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

目录图片

4

2 回答 2

4

请改用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()

来源: 使用 PIL 在 python 中打开并显示 .png 文件


这样做的问题是a没有选择的随机文件的绝对路径。

  1. 在编辑 1 中,“png”被连接,但没有名为“backgroundspng”的文件夹
  2. 在编辑 2 中,您没有给出os.open()可以在此处找到的标志。
  3. 在编辑 3 中,请确保您在字符串之前使用 r。

在你的情况下,使用这个:

folder = r"C:\\Users\rkp10\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\0.91.6_0\backgrounds" 
于 2016-12-07T10:08:19.453 回答
0

您需要通过在字符串前面加上以下内容来使用原始字符串r

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

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

于 2016-12-06T15:56:28.623 回答