问题:将源数据中分类别分城市存放的数据文件,拷贝到一个以城市命名的文件夹中。
即殊途同归拷贝。
源数据:
如下图,源数据包含3种分类的文件夹。
其中01中的数据不分城市,所有城市通用。
02与03中数据分城市存放,且结构相同,后续截图以保定为例。
成果:
分城市的成果数据包,以保定为例:
小脚本:
#-*- coding: utf-8 -*-
import os
import shutil
#from City_Dictionary import city_names
city_names =['三亚', '上海', '东莞', '中山', '乌鲁木齐', '佛山', '保定', '兰州', '北京', '南京', '南宁',
'南昌', '南通', '厦门', '台州', '合肥', '呼和浩特', '哈尔滨', '唐山', '大连', '天津', '太原', '宁波',
'常州', '广州', '徐州', '惠州', '成都', '扬州', '无锡', '昆明', '杭州', '柳州', '武汉', '沈阳', '泉州',
'济南', '海口','深圳', '温州', '潍坊', '烟台', '珠海', '盐城', '石家庄', '福州', '秦皇岛', '绍兴', '芜湖',
'苏州', '西宁', '西安', '贵阳', '郑州', '重庆', '金华', '银川', '长春', '长沙', '青岛']
#RD_LINK、RD_NODE所有后缀的文件存入列表
link_node_LIST = []
file_type = ['.dbf','.prj','.sbn','.sbx','.shp','.shx']
for type in file_type:
copy_file_LINK = 'RD_LINK' + type
link_node_LIST.append(copy_file_LINK)
copy_file_NODE = 'RD_NODE' + type
link_node_LIST.append(copy_file_NODE)
for city_chinese in city_names:
#输入
#01警示信息路径
copyfrom_dir_WARNIN = 'D:/PythonCode_inWork/02打断数据包自动生成/EX2_DATA/copyfrom/01WARNING/'
#02打断前link&node
copyfrom_dir = 'D:/PythonCode_inWork/02打断数据包自动生成/EX2_DATA/copyfrom/02ROAD/'+city_chinese+'/'
#03打断后link&node
copyfrom_dir_EX2 = 'D:/PythonCode_inWork/02打断数据包自动生成/EX2_DATA/copyfrom/03ROAD_EX/'+city_chinese+'/'
#输出:成果打断包路径
copyto_dir = 'D:/PythonCode_inWork/02打断数据包自动生成/EX2_DATA/copyto/19Q1/'+city_chinese+'/'
#遍历拷贝警示信息文件——不用改名
warning_files = os.listdir(copyfrom_dir_WARNIN)
for warning in warning_files:
#路径+文件名
old_filename_WARNING = copyfrom_dir_WARNIN + warning
new_filename_WARNING = copyto_dir + warning
shutil.copyfile(old_filename_WARNING,new_filename_WARNING)
#print(city_chinese+'警示信息拷贝完成!')
print(city_chinese+'全部警示信息拷贝完成!')#一个城市的全部警示信息拷贝完才打印
#遍历拷贝RD_LINK、RD_NODE文件——并改名为相应打断前、后
for link_node_file in link_node_LIST:
#——————————————LINK/NODE源数据————————————————————————
#打断前
old_filename = copyfrom_dir + link_node_file
#打断后
old_filename_EX2 = copyfrom_dir_EX2 + link_node_file
#——————————————LINK/NODE打断包数据————————————————————
#打断前
new_filename = copyto_dir + link_node_file[0:2] + '打断前' + link_node_file[-9:]
#打断后
new_filename_EX2 = copyto_dir + link_node_file[0:2] + '打断后' + link_node_file[-9:]
#——————————————拷贝处理———————————————————————————————
#打断前
shutil.copyfile(old_filename,new_filename)
#打断后
shutil.copyfile(old_filename_EX2,new_filename_EX2)
#print(city_chinese + 'LINK、NODE拷贝完成')
print(city_chinese +'全部LINK、NODE拷贝完成')
print('打断数据包已全部生成!')