对于python来说,我是中间人,但是当谈到模块时,我很挣扎。我正在处理一个项目,我试图将变量分配给当前目录中的随机目录或文件(目录中的任何随机内容)。我希望它只是选择该目录中的任何随机内容,然后将其分配给变量。
产品最终应该将变量分配给工作目录中的随机对象。谢谢。
file = (any random file in the directory)
编辑:这也有效
_files = os.listdir('.')
number = random.randint(0, len(_files) - 1)
file_ = _files[number]
谢谢大家的帮助:)。
答案 0 :(得分:4)
您可以使用
import random
import os
# random.choice selects random element
# os.listdir lists in current directory
filename=""
# filter out directories
while not os.path.isfile(filename):
filename=random.choice(os.listdir(directory_path))
with open(filename,'r') as file_obj:
# do stuff with file
答案 1 :(得分:2)
另一种选择是使用通配,特别是如果你想从一些文件中选择,而不是所有文件:
import random, glob
pattern = "*" # (or "*.*")
filename = random.choice(glob.glob(pattern))
答案 2 :(得分:1)
_files = os.listdir('.')
number = random.randint(0, len(_files) - 1)
file_ = _files[number]
逐行顺序:
答案 3 :(得分:0)
这里是从多个子目录的目录中打印并打开单个随机文件的选项。
import numpy as np
import os
file_list = [""]
for root, dirs, files in os.walk(r"E:\Directory_with_sub_directories", topdown=False):
for name in files:
file_list.append(os.path.join(root, name))
the_random_file = file_list[np.random.choice(len(file_list))]
print(the_random_file)
os.startfile(the_random_file)