1、  获取总目录下所有的子目录以及子目录下文件的完整路径:readFilename子程序

2、  对所有的文件名进行分析,把同名的文件全部掕出来放到新的文件夹里,重名的文件自动重命名:mycopyfile子程序负责把一个文件复制到另一个地方,arrange_files子程序中调用了mycopyfile子程序,把所有的目标文件都复制

3、  使用Arcmap自带的Python库把一个文件夹里所有的文件都合并起来,遍历所有的文件夹:all_path子程序

使用时修改“# 定义路径”中的路径即可。

#coding=utf8

import os

import arcpy

import shutil

def readFilename(path, allfile):  # 读取原始文件夹下文件目录

filelist = os.listdir(path)  # 获取目录下文件列表

for

filename in filelist:  # 循环取出列表中的元素

filepath = os.path.join(path, filename) # 将元素名与路径名合并

if os.path.isdir(filepath):

readFilename(filepath, allfile)  #子目录下递归

else:

allfile.append(filepath)  # 将合并后名称存入allfile数组中

return allfile

def mycopyfile(srcfile, dstfile):

if

not os.path.isfile(srcfile):

print "%s not exist!" % (srcfile)

else:

fpath, fname = os.path.split(dstfile) # 分离文件名和路径

if not os.path.exists(fpath):

os.makedirs(fpath)  # 创建路径

shutil.copyfile(srcfile,

dstfile)  # 复制文件

#这下面是对copy数据到新位置的函数的调用

def arrange_files(path1,path2):

allfile1=[]

allfile1 = readFilename(path1,allfile1)

print len(allfile1)

new_li = []

for name in allfile1:

t = os.path.basename(name)#文件名加扩展名,不含路径

t1 = t.split(".")[0]  #

.分割后的第一个,也就是文件名

if t1 not in new_li:

new_li.append(t1)#获得所有文件名的列表,也就是分类

for i in new_li:#遍历所有分类;i是从new_li里拿的,就是文件名

for nam in allfile1:#遍历所有文件路径,找名字跟分类一样的文件,就挪过去allfile是有路径的完整的信息

tit = nam.split("\\")[-2]#这个是底层文件夹名称

t = os.path.basename(nam)#文件名加扩展名

t1 = t.split(".")[0]  #

.分割后的第一个,也就是文件名

t2 = t.split(".")[1]  #

.分割后的第一个,也就是扩展名

if t1 == i:

dstfile = path2 + "\\" + i + "\\" + tit + "_" + i + "."+t2#因为文件都是重名的,所以得找个规则重命名

print dstfile

mycopyfile(nam, dstfile)

#合并图层代码

def all_path(dirname,merge_dir):

for

maindir, subdir, file_name_list in os.walk(dirname):

for subdir1 in subdir:

print  "正在处理" + subdir1

apath = os.path.join(maindir, subdir1)

arcpy.env.workspace = apath

fcs = arcpy.ListFeatureClasses()

lspt = []

for fc in fcs:

lspt.append(fc)

if not os.path.exists(merge_dir):

os.makedirs(merge_dir)  # 创建路径

arcpy.Merge_management(lspt, merge_dir + subdir1)

print "完成"+subdir1

# 定义路径

path1 = "D:\\test" #原始文件的总目录

path2 = "D:\\COPY" #把原始文件根据名称重新整理后的总目录

merge_dir = "d:\\meger\\"  # 文件合并后的总目录

# 执行程序

arrange_files(path1,path2) #执行文件复制整理

all_path(path2,merge_dir)  #执行文件合并

arcgis 同名图层合并_【工具分享】ArcGIS中批量合并同名shp文件的代码实现相关推荐

  1. html 合并单元格后居中,excel批量合并单元居中,还在手工点合并后居中吗

    很多朋友对于列中相同的内容,都会手工点击菜单栏上的合并后居中,这样手工操作的方式,对数据量不是很大的列,操作没有任何问题,但对于列中数据比较多的情况,如果还是先选中相同的内容,然后再进行合并后居中,这 ...

  2. arcgis更改图层坐标系_【干货】ArcGIS之shp文件坐标系互转

    原标题:[干货]ArcGIS之shp文件坐标系互转 准备arcgis10.4 shp文件,没有定义坐标系,格式是经纬度的 准备的数据如下: 1.先将shp文件定义为EPSG:4326 首先打开arct ...

  3. arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度

    1. 概述 已知有一个河流的线图层(HydroL)和多个不同用地类型的图层(WoodyA表示绿化用地,ResidentialA表示公共用地,BoundaryA表示其他类型用地),目标是获得每个分区内的 ...

  4. arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...

    ArcGIS中的坐标系:基本概念和常用操作 李郎平,Email: lilp@lreis.ac.cn 中国科学院地理科学与资源研究所,资源与环境信息系统国家重点实验室 缘由:介绍GIS(地理信息系统)中 ...

  5. arcgis打开mdb数据库_科学网—Arcgis .mxd 文件打开出错+Runtime Error+mdb数据打不开 - 陈桂华的博文...

    Arcgis .mxd 文件打开出错+Runtime Error 在另外一台机器上编辑了的mxd文件到另外一台机器上打开出错,显示类似如下信息: "Opening the selected ...

  6. hssfworkbook 单元格合并后宽度不生效_一起来学习Excel批量合并单元格的操作技巧...

    在我们日常工作中,利用Excel制作表格时,合并单元格是一个让人又爱又恨的东西,合并单元格后的数据处理会带来很多麻烦,比如求和.统计等计算工作(可查阅<让我们一起来干掉Excel合并单元格的那些 ...

  7. python 批量读取xlsx并合并_如何用Python快速导入多个excel文件并合并文件数据

    日常工作中,每个月都会遇到那么个固定的工作,将业务方同事整理的数据导入GP数据库中的某张表中:听起来是很简单的活呢! 但每次业务MM总会发来一个文件夹,里面有三四十个Excel文件(.xlsx格式,且 ...

  8. ssis合并连接链接键_在SSIS包中使用合并联接转换

    ssis合并连接链接键 This article explores the Merge Join Transformation in SSIS packages. 本文探讨了SSIS包中的合并联接转换 ...

  9. 多个excel工作簿合并_「Excel技巧」批量将多个工作簿的工作表合并到一个工作簿中...

    多个工作簿里的表格合并到一个工作簿中,在日常工作中应该经常碰到吧. 怎么合并会比较快又省事? 当然,肯定不是复制粘贴,要合并的工作簿多的情况下,这种方式很耗力气. 不妨,试试用VBA代码法. 今天来讲 ...

最新文章

  1. tomcat苹果版安装步骤_Mac系统安装和配置tomcat步骤详解
  2. pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)
  3. MobileNetV3
  4. php 文章搜索,登录 - 文章搜索 - phpStudy - phpStudy
  5. XEIM 飞鸽传书数据库说明
  6. Qt工作笔记-QGraphics框架场景中图元的移除与析构
  7. AAAI 2021 | 视频超分中的可变形对齐解读
  8. Android自定义Toast
  9. CentOS下通过postfix使用自己的gmail邮箱发送邮件
  10. Oracle 备份shell,oracle数据库shell备份脚本
  11. es 测试数据进行 增删查改
  12. leetcode最小面积_LeetCode 题解 |力扣杯 LCP 13.寻宝
  13. 怎么复原java项目文件_从jar包还原出java源码(项目文件)
  14. office宏病毒反弹shell实验
  15. android listview 图片闪烁,listView异步加载图片导致图片错位、闪烁、重复的问题的解决...
  16. 酷客多接受CCTV2财经频道专访
  17. 数据结构之2-3 树
  18. hadoop集群搭建完整教程,java电商项目面试技巧
  19. WebRTC H5实现服务器转发的视频聊天
  20. GLSL vary、atrribute、in、out的区别

热门文章

  1. 使用 pdfminer 读取 pdf 文件
  2. 图解 Centos7 硬盘挂载
  3. 图片缩放cv2.resize()详解
  4. Mac OS X 下修改文件属性:创建时间、修改时间
  5. 腾云忆想科技和腾讯关系_独家 | 阿里云收购长亭科技后,腾讯云也完成了对CODING的收购...
  6. 软考嵌入式系统工程师知识点整理(计算机系统构成)
  7. 视光学常用检查参数解释
  8. OSChina 周六乱弹 —— 下班调闹铃
  9. nginx的An error occurred 一个错误发生!!!
  10. php安卓浏览器调用相机拍照,浏览器调用相机进行拍照