所以,我有一个文件夹,里面有一堆图像。有没有一种方法可以让我随机选择其中一个并返回图像的路径?
您可以使用glob.glob
和random.choice
:
import glob
import random
file_path = random.choice(glob.glob("/path/to/folder/*"))
import os
import random
folder_directory = r"C:/Users/Andrew/Desktop/Beta-Testing/memes"
file_path = folder_directory[:-1] + "\" + random.choice(os.listdir(folder_directory))
print('r"'+file_path+'"')
获取此输出
r"C:/Users/Andrew/Desktop/Beta-Testing/memesmeme10.jpeg"
对于这个问题,您需要子进程库(它在shell上运行命令并可以记录它们的输出(,而您需要随机库。对于初学者来说,您将想要目录的输出,这样类似的东西将以字符串格式为您提供输出:
from subprocess import Popen, PIPE
pipe = Popen("put the command here i.e. the path plus the command", stdout=PIPE, shell = True)
text = pipe.communicate()[0]
print(text)
有了可变文本,你可以解析它(这你必须自己解决(,并将所有文件放入一个列表中,从那里:
import random
chosen_file = random.choice(list_of_files)
list_of_files.remove(chosen_file) #this is so that you dont have the same photo twice
然后,bada bing,bada boom你应该能够在目录中随机选择照片,作为附带说明,确保你在子流程命令中包括照片的目录,除非你想把这个python文件和它们放在同一个文件夹中
希望这有帮助,所有最好的
import os
import random
# get a list of all the files in the folder
file_list = os.listdir(r"C:UsersUserDesktopimages")
# get a random file from the list
random_file = random.choice(file_list)
# print the path of the random file
print(os.path.join(r"C:UsersUserDesktopimages", random_file))