python之工作举例:通过复制NC文件来造数据
# 通过对NC文件复制来造数据
import os, shutil # 遍历的根目录
root_dir = "D:\\test_data\\DISASTER\\"
# 获取NC文件的时间
time_source = ''
# 生成NC文件的时间
time_new = '' def get_dir_path(dir_name, time_str):
'''
组装目录结构
:param dir_name:文件名
:param time_str:时间字符串,如“20161228080000”
:return:目录路径
'''
dir_path = root_dir + dir_name + '\\' + time_str[0:4] + '\\' + time_str[0:6] + '\\' + time_str[0:8] + '\\'
return dir_path def get_new_file_name(source_file_name, time_source, time_new):
'''
根据源文件和时间生成新的文件名称
:param source_file_name:源文件名
:param time_source:源文件时间
:param time_new:新文件时间
:return: 新的文件名
'''
list_pices = source_file_name.split('_')
# print(list_pices)
new_file_name = list_pices[0]
for s in list_pices[1:]:
if s == time_source:
# print(s)
new_file_name += '_' + time_new
else:
new_file_name += '_' + str(s)
print("源文件名:", source_file_name)
print("新文件名:", new_file_name)
return new_file_name def copy_file(source_file, new_file_name, new_dir):
'''
拷贝文件,并检查文件是否存在
:param source_file: 原文件完整路径包含目录路径和文件名
:param new_file_name: 新文件名称
:param new_dir: 新文件目录路径
:return: 无
'''
if os.path.exists(new_dir):
print("目标目录已存在:", new_dir)
else:
print('目标目录新建成功!', new_dir)
os.makedirs(new_dir) # 创建多级目录
# 复制文件
new_whole_file = new_dir + new_file_name
shutil.copy(source_file, new_whole_file)
if os.path.exists(new_whole_file):
print("文件复制成功!", new_whole_file)
else:
print("文件复制失败!", new_whole_file) def find_and_copy_nc(root_dir, time_source, time_new):
'''
遍历获取需要拷贝的原NC文件
拷贝到新目录下
:param root_dir: 文件根目录
:param time_source: 源文件时间
:param time_new: 目标文件时间
'''
# 遍历根目录,获取天气现象文件夹列表
dir_list = os.listdir(root_dir)
for dir in dir_list:
'''遍历各天气现象要素目录'''
print('#' * 25)
print(dir)
# 组装源NC文件父目录路径
parent_dir = get_dir_path(dir, time_source)
print("源目录路径:", parent_dir)
new_dir = get_dir_path(dir, time_new)
print("目标目录路径:", new_dir)
try:
'''
获取NC文件目录下的文件列表
目录不存在就退出循环
'''
file_list = os.listdir(parent_dir)
except:
print("源目录不存在:", parent_dir)
continue for source_file_name in file_list:
'''遍历NC文件列表'''
if source_file_name.count(time_source) > 0:
print('-' * 20)
# print("源文件名:", source_file_name)
new_file_name = get_new_file_name(source_file_name, time_source, time_new)
# print("目标文件名:", new_file_name)
copy_file(parent_dir + source_file_name, new_file_name, new_dir) find_and_copy_nc(root_dir, time_source, time_new)
python之工作举例:通过复制NC文件来造数据的更多相关文章
- Python之shutil模块(复制移动文件)
用python实现将某代码文件复制/移动到指定路径下.场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tmp ...
- python从一个目录中复制全部文件图片至另一个目录中,及删除指定目录中的图片
import shutil import os #目录自己改一下即可,复制 path = "./static/imgs/" new_path = "./static/up ...
- python 每日一练: 读取log文件中的数据,并画图表
之前在excel里面分析log数据,简直日了*了. 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用. 日志内容大致如下 2016-10-21 21:07:59 ...
- java读取nc文件的问题,前端ajax 发送参数进行交互的实例
1.问题背景: 需要解析nc文件的数据源,获取一个三维数据,并计算器开发值. java 后台处理: 定以一个实例来接收解析的数据并返回给前端. package cn.edu.shou.domain; ...
- 制作nc文件(Matlab)
首先看一个nc文件中包含哪些部分,例如一个标准的 FVCOM 输入文件 wind.nc: netcdf wind { dimensions: nele = 36858 ; node = 18718 ; ...
- Python批量复制迁移文件夹
前言 Python可以利用shutil库进行对文件夹,文件的迁移.而在本次的实践当中,难点在于目标文件夹的名称和数据源文件夹的名称,需要利用 工作单位提供的中间数据去进行对比连接起来. 例如:目标源的 ...
- python第六篇:Python复制超大文件、复制二进制文件
Python文件复制 # 写程序实现复制文件的功能 # 要求: # 1. 源文件路径和目标文件路径需要手动输入 # 2. 要考虑文件关闭的问题 # 3. 要考虑复制超大文件的问题 # 4. 要能复制二 ...
- Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构以及文件和文件夹操作方法
import os,shutil def newDir(dir_path): if not os.path.exists(dir_path): os.makedirs(dir_path) def co ...
- Python学习(九)IO 编程 —— 文件夹及文件操作
Python 文件夹及文件操作 我们经常会与文件和目录打交道,对于这些操作,python可以使用 os 及 shutill 模块,其中包含了很多操作文件和目录的函数. os 可以执行简单的文件夹及文件 ...
随机推荐
- JAVA 8的新特性
1.Lambda表达式:允许把函数作为一个方法的参数 Lambda的优点: 1)简洁 2)非常容易并行计算 3)可能代表未来编程趋势 Lambda的缺点: 1)若不要并行计算,很多时候计算速度没有传统 ...
- TCP/IP协议---ARP协议
ARP协议 以下就默认在以太网类型的网络. 这个协议的作用是通过ip地址(32bit)找到硬件地址(48bit).顺便提一下:在一个局域网里,大家常见的设备交换机,交换机上的主机在互相通信时,实际用的 ...
- android 环境的配置
经过了长达好几天的她探索,一直出现各种问题,然后,也是一个一个的解决,但最后,解决烦了,就觉得重新开始配置android的环境了. 原来一直都是版本的问题,因为我之前下载的都是2014的版本,而这个版 ...
- UOJ67 新年的毒瘤 tarjan
题目传送门 题意:给出一个$N$个点.$M$条边的无向图,找出其中的点,满足去掉该点与和它相连的边之后,这个图会变成一棵树.$N , M \leq 10^5$ 说是毒瘤,真的不毒瘤 思考一下,我们需要 ...
- 让IIS7和IIS6识别PUT和DELETE请求
项目组最近需要开展自动化测试,针对老的Aspx页面,这个做自动化测试的成本太高,于是我们想从老代码中封装一些ashx的Restful服务出来,Restful我们使用HTTP的GET.POST.PUT. ...
- C# 定时器和队列结合,卖包子啦,Timer、 AutoResetEvent、 ManualResetEvent
再你们得到源码之前,我先做个广告:张家港杰德机械/张家港三兴华轩机械是我一朋友的公司,希望需要做净水,灌装机,拔盖机,封口机,传送带等的朋友光顾. 张家港杰德机械有限公司:http://www.jie ...
- 51Nod 1815 调查任务
发现绍一的人很喜欢做51nod,不得不说这还是一个很全能的良心OJ 但是做的这道题就一点都不良心了,简直是毒瘤,调了一早上 首先我们考虑让一条路径的\(a_x\ mod\ a_y\)的值最大,我们简单 ...
- POJ1850&&1019&&1942
这三道题都水的难以想象,所以就放在一起写 1850 题目大意:有一种一种序列排列方式(如同题目中给出的例子),然后给你一个序列,问你这个序列的排名 首先我们先判断无解的情况,这个就很简单了. 由于题目 ...
- 关于用tesseract和tesserocr识别图片的一个问题
对于像我这样初学python网络爬虫的freshman来说,软件的准备和环境的配置能让我们崩溃.其中用刚安装好的tesseract和tesserocr库测试识别验证码就是其中一例. 这里我要测试的验证 ...
- MongoDB集群运维笔记
前面的文章介绍了MongoDB副本集和分片集群的做法,下面对MongoDB集群的日常维护操作进行小总结: MongDB副本集故障转移功能得益于它的选举机制.选举机制采用了Bully算法,可以很方便从分 ...