打斷數據包生成

  • 警示信息及打斷前後平面LinkNode拷貝到打斷數據包中 
#-*- coding: utf-8 -*-

import os
import shutil
#批量處理的60個城市
city_names=os.listdir(r"D:\PythonCode_inWork\02打斷數據包自動生成\19Q4G2_EX2_DATA\copyfrom\02prjROAD")

#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 in city_names:
    #【輸入】
    #01警示信息路徑
    copyfrom_dir_WARNING = 'D:/PythonCode_inWork/02打斷數據包自動生成/19Q4G2_EX2_DATA/copyfrom/01WARNING/'
    #02打斷前平面link&node
    copyfrom_dir = 'D:/PythonCode_inWork/02打斷數據包自動生成/19Q4G2_EX2_DATA/copyfrom/02prjROAD/'+city+'/'
    #03打斷後平面link&node
    copyfrom_dir_EX2 = 'D:/PythonCode_inWork/02打斷數據包自動生成/19Q4G2_EX2_DATA/copyfrom/03prjROAD_EX/'+city+'/'


    #【輸出:成果打斷包路徑】
    copyto_dir = 'D:/PythonCode_inWork/02打斷數據包自動生成/19Q4G2_EX2_DATA/copyto/19Q4G2_EX2/'+city+'/'

    #新建打斷包文件夾
    os.mkdir(copyto_dir)

    #01遍歷拷貝警示信息文件——不用改名
    warning_files = os.listdir(copyfrom_dir_WARNING)
    for warning in warning_files:
        #路徑+文件名
        old_filename_WARNING = copyfrom_dir_WARNING + warning
        new_filename_WARNING = copyto_dir + warning
        shutil.copyfile(old_filename_WARNING,new_filename_WARNING)
        #print(city+'警示信息拷貝完成!')
    print(city+'全部警示信息拷貝完成!')#一個城市的全部警示信息拷貝完纔打印

    #02遍歷拷貝RD_LINK、RD_NODE文件——並改名爲相應打斷前、後
    for link_node_file in link_node_LIST:
    #——————————————LINK/NODE源數據——copyfrom————————————————————————
        #打斷前
        old_filename = copyfrom_dir + link_node_file
        #打斷後——#注意拷貝前文件名是否添加了"打斷後"
        old_filename_EX2 = copyfrom_dir_EX2 + link_node_file
        #old_filename_EX2 = copyfrom_dir_EX2 + link_node_file[0:2] + '打斷後' + link_node_file[-9:]

        #——————————————LINK/NODE打斷包數據——copyto————————————————————
        #打斷前
        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 + 'LINK、NODE拷貝完成')
    print(city +'全部LINK、NODE拷貝完成')
    
print('打斷數據包已全部生成!')

  • 將打斷包成果中60個城市拷貝到所屬作業組文件夾下 
#-*- coding: utf-8 -*-
import os
import shutil
#批量處理的60個城市
#city_names=os.listdir(r"")
ls_TY=['ZHONGSHAN', 'FOSHAN', 'BEIJING', 'NANJING', 'DALIAN', 'XUZHOU',
       'CHENGDU', 'WUXI', 'WUHAN', 'SHENYANG', 'QUANZHOU', 'SHENZHEN', 
       'ZHUHAI', 'YANCHENG', 'SHIJIAZHUANG', 'FUZHOU', 'QINHUANGDAO', 
       'WUHU', 'XINING', 'CHONGQING', 'YINCHUAN', 'CHANGCHUN']
ls_HZ=['LANZHOU', 'NANTONG', 'HUHEHAOTE', 'HUIZHOU', 'YANGZHOU', 
       'SUZHOU', 'XIAN', 'JINHUA', 'JINAN', 'SHAOXING']
ls_TJ=['SANYA', 'SHANGHAI', 'WULUMUQI', 'BAODING', 'NANCHANG', 
       'XIAMEN', 'TAIZHOU', 'HEFEI', 'HAERBIN', 'TANGSHAN', 'TIANJIN',
       'TAIYUAN', 'WENZHOU', 'YANTAI', 'GUIYANG', 'ZHENGZHOU', 'QINGDAO']
ls_CS=['DONGGUAN', 'NANNING', 'NINGBO', 'CHANGZHOU', 'GUANGZHOU', 
       'KUNMING', 'HANGZHOU', 'LIUZHOU', 'WEIFANG', 'CHANGSHA']
ls_YS=['HAIKOU']

groupDict = {'圖源組':ls_TY,'杭州組':ls_HZ,'天津組':ls_TJ,'長沙組':ls_CS,'驗收組':ls_YS}
#num城市數,groupCityLs作業組城市列表,Root根目錄,groupName作業組名稱
def CopyBag(groupCityLs,copyFromRoot,copyToRoot,groupName):
    num = 0
    for city in groupCityLs:#作業組城市列表        
        copyFromDir = copyFromRoot + '\\' + city
        copyToDir = copyToRoot + '\\' + groupName + '\\' + city
        
        shutil.copytree(copyFromDir,copyToDir)
        num += 1
    print(groupName + str(num) + '城市打斷包拷貝完成!')
    return num

#將打斷包拷貝到對應作業組下
copyFromRoot = r"D:\PythonCode_inWork\02打斷數據包自動生成\19Q4G2_EX2_DATA\copyto\19Q4G2_EX2\\" 
copyToRoot = r"D:\PythonCode_inWork\02打斷數據包自動生成\19Q4G2_ROAD_EX2_GROUP\\"     
num_ALL = 0
for groupName in groupDict:
    print(groupName)
    os.mkdir(copyToRoot + groupName)
    #注意接收函數返回之時,函數執行一次
    num = CopyBag(groupDict[groupName],copyFromRoot,copyToRoot,groupName)
    num_ALL += num

print(str(num_ALL)+'城市打斷包已拷貝完成!')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章