我想从文件夹中获取一个随机文件并将其复制到另一个文件夹;
所以,我得到文件夹中的文件
root_src = 'D:\Downloads'
files = os.listdir(root_src)
file = random.choice(files)
new_root = os.path.join(root_src, 'new')
copyfile(file, new_path)
我收到以下错误:
FileNotFoundError: [Errno 2] No such file or directory: 'file-12.jpg'
所以,我猜当我做random.choice时我没有得到路径
答案 0 :(得分:3)
当您致电os.listdir
时,会返回该文件夹中文件的名称列表。
它不会将这些文件名连接到目录路径(设计选择的结果是将字符串伪装成没有任何显式Path
对象的路径的Java)。
无论出现什么问题,都需要加入它们。为此,from os import path
并调用path.join(root_src, file)
。
请注意,如果您使用path
作为变量名称,则不应该这样做。相反,import os
并调用os.path.join(root_src, file)
。
答案 1 :(得分:0)
使用以下代码
import os
root_src = 'D:\Downloads'
files = os.listdir(root_src)
file = random.choice(files)
new_root = os.path.join(root_src, 'new')
copyfile(os.path.join(root_src, file), new_path)