python ——批量读取相同格式文件(多个文件夹/单个文件夹)---nc文件为例

简介: 在处理多个相同格式的文件时,python中的许多模块可以为我们提供很多遍历。比如,我们想读取一个文件夹下多个相同格式的文件时可以使用os模块,

在处理多个相同格式的文件时,python中的许多模块可以为我们提供很多遍历。

比如,我们想读取一个文件夹下多个相同格式的文件时

可以使用os模块,


import os


以下有几个常见用法:

1、os.path.abspath(path) #返回绝对路径

2、os.path.filename(path) #返回文件名

3、os.path.dirname(path) #返回文件路径

4、os.path.join(‘字符串1’,‘字符串2’,‘字符串3’,) #将目录和文件名合成一个路径,一般最后一个字符串为文件名,前面的字符串表示文件所在目录。

5、os.walk(path) #用来扫描某个指定目录下所包含的子目录和文件

6、os.listdir(path) #得到文件夹下的所有文件名称

对于单个文件夹下所有文件处理方式:


import os
path='E://pythonlearn//'  #设置存储路径
files= os.listdir(path) #得到文件夹下的所有文件名称
for file in files:  #按照顺序在 files 里面进行每一个文件的 数据名称 循环读取
    f = open(path+file,'r')   # 打开第一个文件
    #如果是其他文件,使用他的读取方法即可
    #如是nc文件,将上一行换成:f =nc.Dataset(file,'r') 即可
  #下面进行相关其他处理即可


但是在海洋数据处理过程中,我们常常遇到这样的情况:


一个文件夹包含多个子文件夹。


比如说我们下载得到的Argo数据存在多年数据,每年数据又存在12个月,每个月又存在多条数据。


这样又该如何处理呢?

这其实也涉及到字符串拼接的问题,以下举一个例子:

文件夹如下所示:

我们有三个以大洋命名的文件夹


20210419192527997.png


点开第一个后发现有一个文件夹写着2020,表示2020年的数据


20210419192807759.png


再次点开后有12个以月份命名的文件夹


20210419192842140.png


再次点开01月份的文件夹,里面包含多个数据:


20210419192919891.png


在这个一层套一层文件夹的过程中,就是我们算法需要实现的过程!


仔细观察,不难发现,我们的文件夹除了第一个是按照大洋的名称命名,里面的子文件夹都是按照年月日有规律的命名的,包括我们最终的文件也是!

这样看来,看过我这一篇博文的小伙伴们一定就有思路了!


python 批量处理nc文件-字符串拼接文件,有规律文件名


好了,废话不多说,上代码!

先导入模块,然后拼接字符串,最后放入循环中即可完美解决!


import calendar
file_path='G://argo//atlantic_ocean//' #文件路径
for year in range(2020,2021):
    for month in range(1,13):
          for day in range(1,calendar.monthrange(year,month)[1]+1):
          fn='%04.0f'%year+'\\'+'%02.0f'%month+\
          '\\'+'%04.0f'%year+'%02.0f'%month+'%02.0f'%day+'_prof.nc' 
            if(os.path.exists(file_path+fn)):#判断一下是否存在该路径,成功的话即可进行下一步文件读取处理!


非常perfect!!!

追问一下,如果是太平洋下面的数据呢?聪明的小伙伴们赶快尝试起来吧~


一个努力学习python的海洋小白  

水平有限,欢迎指正!!!                            

欢迎评论、收藏。


相关文章
|
11天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
21天前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
51 20
|
27天前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
|
28天前
|
存储 JSON 对象存储
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
|
1月前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
Python
python实现IP进制格式转换
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396536 ...
1057 0
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章

推荐镜像

更多