Скопировать случайный файл в другое место (python) - PullRequest
0 голосов
/ 11 мая 2018

Я хочу получить случайный файл из папки и скопировать его в другую папку;

Итак, я получаю файлы в папке

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.hoice, я не понимаю путь

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Используйте код ниже

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) 
0 голосов
/ 11 мая 2018

Когда вы звоните os.listdir, он возвращает список имен файлов в папке.

Он не присоединяет эти имена файлов к пути к каталогу (что является следствием того, что дизайн выбирает маскировку строк в виде путей без какого-либо явного Path объекта на языке Java).

Везде, где возникает эта проблема, вам нужно присоединиться к ним. Для этого from os import path и вызовите path.join(root_src, file).

Обратите внимание, что если вы используете path в качестве имени переменной, вы не должны этого делать. Скорее import os и вызовите os.path.join(root_src, file).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...