python之工作举例:通过复制NC文件来造数据
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文件来造数据相关推荐
- 将nc文件中的数据按月份求平均值
将nc文件中的数据按月份求平均值(就是比如我们有2001~2010这10年按月存储的数据,我们分别求这10年数据1月份.2月份.-.12月份的平均值) 关于nc数据的读取之前介绍过,所以这里就跳过,假 ...
- python print(len(pi_string))_Python如何从文件中读取数据
从文件中读取数据 1. 读取整个文件 要读取文件,首先来创建一个文件: 然后打开并读取这个文件,再将其内容显示到屏幕上:file_reader.py with open('pi_digits.txt' ...
- python有什么库可以 从fig文件中读取数据_Python之matplotlib库学习:实现数据可视化...
1. 安装和文档 pip install matplotlib 为了方便显示图像,还使用了ipython qtconsole方便显示.具体怎么弄网上搜一下就很多教程了. pyplot模块是提供操作ma ...
- abaqus python 读取文件_通过Python脚本从Abaqus中的excel文件导入幅度数据
我在从excel文件导入幅度数据时在Abaqus中创建了以下宏.然后尝试运行此脚本以从同一个excel文件创建另一个幅度但不幸的是,我有以下错误.在这方面有人可以帮助我吗? 脚本: # Do not ...
- mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
假设需求:需要把库test1中的的数据迁移到test2中,并且test2中数据量特别大 硬性条件:1.mysql 使用 Innodb引擎,且开启独立表空间,2.两个库的mysql版本一致(不同版本下未 ...
- python解决工作小问题之 处理Excel的重复数据
问题:老婆需要处理一个Excel表,有四千多行数据,如下:其中"型号规格"有很多重复的,需要将重复项进行合并,生成一个新的简洁的表."带娃做作业"和" ...
- 代码分享 Python | 批量nc文件转tif
01 准备工作:查看nc文件属性等. 工具:Panoply.Matlab等软件. 操作: 1.使用Panoply 软件. 2.使用Matlab软件. 即可查看nc文件内各种属性: 如果想单独查看变量 ...
- 通过Python实现NC文件转GeoTiff格式
通过Python实现NC文件转GeoTiff格式 〇.目录 通过Python实现NC文件转GeoTiff格式 一.前言 二.基本了解 三.功能实现 四.成图预览 五.参考 六.总结 一.前言 基于Py ...
- matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据
MATLAB打开nc文件 ncdisp('E:\**\**.nc') 输入该命令后命令行窗口会显示该nc文件的基本信息 MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据. ...
最新文章
- 虚拟机下Linux安装图解之二:虚拟机的创建
- GitLab成立中国合资公司极狐,强调“独立运营”
- 理解和认识udev(转载)
- python中可以用中文作为变量-在python字典中使用变量作为键名
- Ambiguous mapping found. Cannot map 'xxxxController' bean method
- 认证方案之初步认识JWT
- 微信JS-SDK开发 入门指南
- Java面向对象-抽象类
- 组合数学+gcd BZOJ3505 [Cqoi2014]数三角形
- 大学课程很少有教怎么设计单片机开发板,进阶板更不用说
- NodeMCU(ESP8266)按键中断实现单击-双击-长按功能
- 利用PPPOE认证获取路由器中宽带账号密码
- VS Code unins000尝试在目标目录创建文件时出错
- File Juicer for Mac(文件内容提取工具)
- JAVA当前时间timestamp_java获取获得Timestamp类型的当前系统时间
- 可折叠的listview 之ExpandableListView基本使用
- 纵观30年5000多部国产电视剧,豆瓣评分最低的演员原来是……
- 要做单片机课课设的快看过来1:KEIL安装以及C51环境搭建和Protues安装保姆教程
- [Python面试][基础算法题]Python基础面试(基础算法题目较多)
- 手写汉字数字识别详细过程(构建数据集+CNN神经网络+Tensorflow)
热门文章
- 【PAT - 1014】福尔摩斯的约会(简单模拟)
- 1.深度学习练习:Python Basics with Numpy(选修)
- (ECC)椭圆曲线加密算法原理和C++实现源码
- 4.Model Validation
- c 连接mysql示例 源码_MySQL 连接
- Java中number数字类型的转换_Java下数字类型的转换 (转)
- 【算法系列之十三】二叉树两叶节点的最大距离
- jquery工具箱旋转动画效果
- PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
- python模块(5)-Matplotlib 简易使用教程