假设从文件夹A中随机选取100个文件,复制到文件夹B中

本文介绍了一个Python程序,用于随机生成100个地块编号,并将对应shp文件复制到指定文件夹,以优化计算资源利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#coding=utf-8
# 作    者  : PeiQi
# 开发时间  : 2021/11/4 0004  上午 8:56
# 文件名称  :  random500.PY
# 开发工具  :  PyCharm
'''
需求:
    随机取指定个数的地块,为了节约计算资源,避免每次计算非验证的地块,首先将随机选取的地块对应的shp文件复制到文件夹中,
    每次运行程序,只计算随机获得的地块。

本模块代码的作用:
    随机生成指定个数的数字写入.txt文档,并将随机生成的数字对应的.shp文件(8个)复制到指定文件夹中
'''

import random
import os
import shutil

#存放随机得到的文件编号
rand_set=[]
#num没用,只是我用来计数,并且输出到控制台,以方便让我实时了解复制进度
num=0
# txt文档名
full_path = "随机100个地块编号.txt"
#rang()中填写的是需要得到多少个随机数
for i in range(10):
    #随机数的取值范围
    rand= random.randint(0, 5058)
    #将随机数append到rang_set[]中
    rand_set.append(rand)
    #打开txt文档
    file = open(full_path, 'a')
    #将随机数写进txt文档
    file.write(str(rand))  # msg也就是下面的Hello world!
    file.write("\n")
#这个print()没啥用,我就是想在控制台看看随机生成的数
print(sorted(rand_set))

# 很多shp文件的存在的文件夹    from
src_dir_path = 'C:/Users/Administrator/Desktop/0417/5053'
# 存放复制文件的文件夹    to
to_dir_path = 'shp'

#遍历随机数列表
for key_int in rand_set:
    num=num+1
    print("正在复制第%d个shp" %num)
    # 源文件夹中的文件包含字符key则复制到to_dir_path文件夹中
    key=str(key_int)
    if not os.path.exists(to_dir_path):
        print("dir路径不存在,因此创建dir")
        os.mkdir(to_dir_path,1)

    #遍历from文件夹中的所有文件名
    for file in os.listdir(src_dir_path):
        #如果from文件夹中的file是个文件,而非文件夹
        if os.path.isfile(src_dir_path+'/'+file):
            #判断from文件夹中的file名和随机数列表中的元素关系,这个if只能复制八个文件中的七个
            if os.path.splitext(file)[0] == key:
                shutil.copy(src_dir_path+'/'+file,to_dir_path+'/'+file)
            #这个if将复制第八个
            elif os.path.splitext(file)[0]== key+".shp":
                shutil.copy(src_dir_path + '/' + file, to_dir_path + '/' + file)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值