Python 随机移动文件/文件夹到另一个文件夹

随机移动一个文件到另一个文件夹下

'''
@随机移动某个文件夹的一个文件到另一个文件夹下
@随机移动移动一个文件夹下的子文件夹到另一个文件夹下
@python 3.8
'''

def random_move_file(source_dir, target_dir):
    '''
    :param source_dir: 待移动文件的文件夹路径
    :param target_dir: 将要移动到的文件夹路径
    :return:
    '''
    try:
        # out_image文件夹下的所有诗词文件夹
        all_files = os.listdir(source_dir)
        if not all_files:
            print("文件夹下没有文件")
            return None

        if not os.path.exists(target_dir):
            os.mkdir(target_dir)
            print("新建文件夹{}".format(target_dir))

        # 随机选取一个
        sample = random.sample(all_files, 1)[0]
        print(sample)
        source_dir = os.path.join(source_dir, sample)
        shutil.move(source_dir, target_dir)
    except:
        print(traceback.print_exc())
if __name__ == '__main__':
    source_dir = r"D:\Document\scrapy\image_all\out_image_used\\金陵图"
    target_dir = r"D:\Document\scrapy\image_all\out_image_used\\金陵图_moved"
    random_move_file(source_dir, target_dir)


随机移动移动一个文件夹到另一个文件夹下

def random_move_dir(source_dir, target_dir):
    try:
        '''获取当前文件夹下的所有子文件夹名称'''
        images_dirs = []
        for root, dirs, files in os.walk(source_dir):
            for sub in dirs:
                images_dirs.append(sub)

        sample = random.sample(images_dirs, 1)[0]
        print(sample)
        source_sub_dir = os.path.join(source_dir, sample)
        target_sub_dir = os.path.join(target_dir, sample)
        if os.path.exists(target_sub_dir):
             shutil.rmtree(target_sub_dir, ignore_errors=True)
        '''copy后删除源子文件夹'''
        shutil.copytree(source_sub_dir, target_sub_dir )
        shutil.rmtree(source_sub_dir, ignore_errors=True)
    except:
        print(traceback.print_exc())

if __name__ == '__main__':
    source_dir = r"D:\Document\scrapy\image_all\out_image"
    target_dir = r"D:\Document\scrapy\image_all\out_image_used"
    random_move_file(source_dir, target_dir)


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值