1 # 通过对NC文件复制来造数据
  2 import os, shutil
  3
  4 # 遍历的根目录
  5 root_dir = "D:\\test_data\\DISASTER\\"
  6 # 获取NC文件的时间
  7 time_source = '20161228080000'
  8 # 生成NC文件的时间
  9 time_new = '20181228080000'
 10
 11
 12 def get_dir_path(dir_name, time_str):
 13     '''
 14     组装目录结构
 15     :param dir_name:文件名
 16     :param time_str:时间字符串,如“20161228080000”
 17     :return:目录路径
 18     '''
 19     dir_path = root_dir + dir_name + '\\' + time_str[0:4] + '\\' + time_str[0:6] + '\\' + time_str[0:8] + '\\'
 20     return dir_path
 21
 22
 23 def get_new_file_name(source_file_name, time_source, time_new):
 24     '''
 25     根据源文件和时间生成新的文件名称
 26     :param source_file_name:源文件名
 27     :param time_source:源文件时间
 28     :param time_new:新文件时间
 29     :return: 新的文件名
 30     '''
 31     list_pices = source_file_name.split('_')
 32     # print(list_pices)
 33     new_file_name = list_pices[0]
 34     for s in list_pices[1:]:
 35         if s == time_source:
 36             # print(s)
 37             new_file_name += '_' + time_new
 38         else:
 39             new_file_name += '_' + str(s)
 40     print("源文件名:", source_file_name)
 41     print("新文件名:", new_file_name)
 42     return new_file_name
 43
 44
 45 def copy_file(source_file, new_file_name, new_dir):
 46     '''
 47     拷贝文件,并检查文件是否存在
 48     :param source_file: 原文件完整路径包含目录路径和文件名
 49     :param new_file_name: 新文件名称
 50     :param new_dir: 新文件目录路径
 51     :return: 无
 52     '''
 53     if os.path.exists(new_dir):
 54         print("目标目录已存在:", new_dir)
 55     else:
 56         print('目标目录新建成功!', new_dir)
 57         os.makedirs(new_dir)  # 创建多级目录
 58     # 复制文件
 59     new_whole_file = new_dir + new_file_name
 60     shutil.copy(source_file, new_whole_file)
 61     if os.path.exists(new_whole_file):
 62         print("文件复制成功!", new_whole_file)
 63     else:
 64         print("文件复制失败!", new_whole_file)
 65
 66
 67 def find_and_copy_nc(root_dir, time_source, time_new):
 68     '''
 69     遍历获取需要拷贝的原NC文件
 70     拷贝到新目录下
 71     :param root_dir: 文件根目录
 72     :param time_source: 源文件时间
 73     :param time_new: 目标文件时间
 74     '''
 75     # 遍历根目录,获取天气现象文件夹列表
 76     dir_list = os.listdir(root_dir)
 77     for dir in dir_list:
 78         '''遍历各天气现象要素目录'''
 79         print('#' * 25)
 80         print(dir)
 81         # 组装源NC文件父目录路径
 82         parent_dir = get_dir_path(dir, time_source)
 83         print("源目录路径:", parent_dir)
 84         new_dir = get_dir_path(dir, time_new)
 85         print("目标目录路径:", new_dir)
 86         try:
 87             '''
 88             获取NC文件目录下的文件列表
 89             目录不存在就退出循环
 90             '''
 91             file_list = os.listdir(parent_dir)
 92         except:
 93             print("源目录不存在:", parent_dir)
 94             continue
 95
 96         for source_file_name in file_list:
 97             '''遍历NC文件列表'''
 98             if source_file_name.count(time_source) > 0:
 99                 print('-' * 20)
100                 # print("源文件名:", source_file_name)
101                 new_file_name = get_new_file_name(source_file_name, time_source, time_new)
102                 # print("目标文件名:", new_file_name)
103                 copy_file(parent_dir + source_file_name, new_file_name, new_dir)
104
105
106 find_and_copy_nc(root_dir, time_source, time_new)

转载于:https://www.cnblogs.com/gongxr/p/7355401.html

python之工作举例:通过复制NC文件来造数据相关推荐

  1. 将nc文件中的数据按月份求平均值

    将nc文件中的数据按月份求平均值(就是比如我们有2001~2010这10年按月存储的数据,我们分别求这10年数据1月份.2月份.-.12月份的平均值) 关于nc数据的读取之前介绍过,所以这里就跳过,假 ...

  2. python print(len(pi_string))_Python如何从文件中读取数据

    从文件中读取数据 1. 读取整个文件 要读取文件,首先来创建一个文件: 然后打开并读取这个文件,再将其内容显示到屏幕上:file_reader.py with open('pi_digits.txt' ...

  3. python有什么库可以 从fig文件中读取数据_Python之matplotlib库学习:实现数据可视化...

    1. 安装和文档 pip install matplotlib 为了方便显示图像,还使用了ipython qtconsole方便显示.具体怎么弄网上搜一下就很多教程了. pyplot模块是提供操作ma ...

  4. abaqus python 读取文件_通过Python脚本从Abaqus中的excel文件导入幅度数据

    我在从excel文件导入幅度数据时在Abaqus中创建了以下宏.然后尝试运行此脚本以从同一个excel文件创建另一个幅度但不幸的是,我有以下错误.在这方面有人可以帮助我吗? 脚本: # Do not ...

  5. mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...

    假设需求:需要把库test1中的的数据迁移到test2中,并且test2中数据量特别大 硬性条件:1.mysql 使用 Innodb引擎,且开启独立表空间,2.两个库的mysql版本一致(不同版本下未 ...

  6. python解决工作小问题之 处理Excel的重复数据

    问题:老婆需要处理一个Excel表,有四千多行数据,如下:其中"型号规格"有很多重复的,需要将重复项进行合并,生成一个新的简洁的表."带娃做作业"和" ...

  7. 代码分享 Python | 批量nc文件转tif

    ​01 准备工作:查看nc文件属性等. 工具:Panoply.Matlab等软件. 操作: 1.使用Panoply 软件. 2.使用Matlab软件. 即可查看nc文件内各种属性: 如果想单独查看变量 ...

  8. 通过Python实现NC文件转GeoTiff格式

    通过Python实现NC文件转GeoTiff格式 〇.目录 通过Python实现NC文件转GeoTiff格式 一.前言 二.基本了解 三.功能实现 四.成图预览 五.参考 六.总结 一.前言 基于Py ...

  9. matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据

    MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...

最新文章

  1. 虚拟机下Linux安装图解之二:虚拟机的创建
  2. GitLab成立中国合资公司极狐,强调“独立运营”
  3. 理解和认识udev(转载)
  4. python中可以用中文作为变量-在python字典中使用变量作为键名
  5. Ambiguous mapping found. Cannot map 'xxxxController' bean method
  6. 认证方案之初步认识JWT
  7. 微信JS-SDK开发 入门指南
  8. Java面向对象-抽象类
  9. 组合数学+gcd BZOJ3505 [Cqoi2014]数三角形
  10. 大学课程很少有教怎么设计单片机开发板,进阶板更不用说
  11. NodeMCU(ESP8266)按键中断实现单击-双击-长按功能
  12. 利用PPPOE认证获取路由器中宽带账号密码
  13. VS Code unins000尝试在目标目录创建文件时出错
  14. File Juicer for Mac(文件内容提取工具)
  15. JAVA当前时间timestamp_java获取获得Timestamp类型的当前系统时间
  16. 可折叠的listview 之ExpandableListView基本使用
  17. 纵观30年5000多部国产电视剧,豆瓣评分最低的演员原来是……
  18. 要做单片机课课设的快看过来1:KEIL安装以及C51环境搭建和Protues安装保姆教程
  19. [Python面试][基础算法题]Python基础面试(基础算法题目较多)
  20. 手写汉字数字识别详细过程(构建数据集+CNN神经网络+Tensorflow)

热门文章

  1. 【PAT - 1014】福尔摩斯的约会(简单模拟)
  2. 1.深度学习练习:Python Basics with Numpy(选修)
  3. (ECC)椭圆曲线加密算法原理和C++实现源码
  4. 4.Model Validation
  5. c 连接mysql示例 源码_MySQL 连接
  6. Java中number数字类型的转换_Java下数字类型的转换 (转)
  7. 【算法系列之十三】二叉树两叶节点的最大距离
  8. jquery工具箱旋转动画效果
  9. PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
  10. python模块(5)-Matplotlib 简易使用教程