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 可以执行简单的文件夹及文件 ...
随机推荐
- [转]QGis2.9在windows下的编译以及二次开发包下载
今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...
- QT pri 文件的作用
i 是什么东西?包含(include)的首字母.类似于C.C++中的头文件吧,我们可以把 *.pro 文件内的一部分内容单独放到一个 *.pri 文件内,然后包含进来. 接前面的例子,我们将源文件的设 ...
- linux 修改内核参数 如何生效?
Linux 操作系统修改内核参数有3种方式: 修改 /etc/sysctl.conf 文件,加入配置选项,格式为 key = value ,修改保存后调用 sysctl -p 加载新配置使用 sysc ...
- C# 队列和栈 线程安全
队列是其元素以先进先出(FIFO)的方式来处理集合,先入队的元素会先读取. 栈是和队列非常类似的另一个容器,栈和队列最大的区别是后进先出(LIFO),也可以说成先进后出. 队列在现实生活中的例子数不胜 ...
- Nagios监控系统部署(源码)
1. 概述2. 部署Nagios2.1 创建Nagios用户组2.2 下载Nagios和Nagios-plugin源码2.3 编译安装3. 部署Nagios-plugin3.1 编译安装nagios- ...
- Linux下FastDFS分布式存储-总结及部署记录
一.分布式文件系统介绍分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System.一种允许文件通过网络在多台主机上分享的文件系 ...
- linux第二次读书笔记
<Linux内核设计与实现>读书笔记 第五章 系统调用 第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用 ...
- ShowHand
实验目的: Github基本源代码控制方法 利用Junit4进行程序模块的测试,回归测试 编码规范的考量 C/Java等基本程序设计语言的运用. 实验过程: import java.util.Arra ...
- 第三个Sprint ------第三天
出题界面代码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
- 关于hash冲突的解决
分离链接法:public class SeparateChainingHashTable<AnyType>{ private static final int DEFAULT_TABLE_ ...