2014-10-20 46 views
2

我必须使用Python显示来自文件夹的随机图像。我试过如何显示文件夹中的随机图片(Python)

import random, os 
random.choice([x for x in os.listdir("path")if os.path.isfile(x)]) 

但它不是为我工作(它给Windows错误:错误的目录语法,即使我只是复制和粘贴)。

这可能是问题所在?

+0

什么是您的文件夹的名称?它是'路径'吗? – darthbith 2014-10-20 14:17:58

+0

这是你正在使用的确切代码?您存储文件夹的目录是否真的称为“路径”? – burnpanck 2014-10-20 14:18:01

回答

7

您需要指定正确的相对路径:

random.choice([x for x in os.listdir("path") 
       if os.path.isfile(os.path.join("path", x))]) 

否则,代码会试图找到在当前目录中,而不是"path"目录(path\image.jpg)的文件(image.jpg)。

UPDATE

正确指定路径。尤其是逃避反斜杠或使用r'raw string literal'。否则\..被解释为转义序列。

import random, os 
path = r"C:\Users\G\Desktop\scientific-programming-2014-master\scientific-programming-2014-master\homework\assignment_3\cifar-10-python\cifar-10-batches-py" 
random_filename = random.choice([ 
    x for x in os.listdir(path) 
    if os.path.isfile(os.path.join(path, x)) 
]) 
print(random_filename) 
+0

但这就是我所做的,我指定了文件夹的路径(而不是“路径”,我把文件夹路径,当然)。 – theggg 2014-10-21 14:33:11

+0

@theggg,在这个问题的代码中,你只放入'x'而不是'os.path.join(“path”,x)' – falsetru 2014-10-21 14:34:02

+0

好吧,对不起,我没有正确阅读,我会尝试。 – theggg 2014-10-21 14:51:47