我试图从指定的目录中获取一个随机单词文件,但它不返回任何内容这是代码的某些部分。
for filename in glob.glob(os.path.join(path, '*docx')):
fl = []
fl.append(filename)
return fl
choice = random.choice(fl)
doc = docx.Document(choice)
print(doc.paragraphs[0].text) # There is a paragraph on the document starting on the first line so problem is not there.
路径没有错。当我没有尝试只获取一个随机文件而不是所有文件时,Eveything工作正常。
答案 0 :(得分:2)
return fl
看起来很奇怪。
否则它应该工作。
files = glob.glob(os.path.join(path, '*docx')
choice = random.choice(files) # each time you get a random file out of files.
您不必像通过循环那样创建另一个通过循环运行文件的列表。
答案 1 :(得分:1)
在for
循环逻辑中,每次获得fl
时,您都在初始化filename
列表,这使fl
值仅包含最后一个文件名(这使得random.choice函数只给你相同的文件名),而是将其重写为,
fl = []
for filename in glob.glob(os.path.join(path, '*docx')):
fl = fl.append(filename)
虽然在你的情况下不需要循环,但我建议你看看@ kra3回答的问题here。