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()

しかし、次のエラーが再び発生しました。

トレースバック (最新の呼び出しが最後): File "G:\Grade 12 Project\auto.py", line 4, in 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 に答える