时间:2022-10-09 17:48:18 | 浏览:272
在本教程中,我们将学习怎样使用Python中的os模块。
目录表
简介
基本函数
列出当前工作目录的文件/目录
改变工作目录
创建单个和嵌套目录结构
递归删除单个和嵌套目录结构
数据处理实例
结论
Python是近年来用于数据处理、数据分析和网站构建等各种任务的最常用语言之一。在处理这些任务的过程中,有许多任务依赖于操作系统。Python允许开发人员通过Python中的os模块使用多个依赖于操作系统的功能。这个包抽象了平台的功能,并提供了相关python函数来导航、创建、删除和修改文件和文件夹。在本教程中,你将了解如何导入这个包、它的基本功能以及使用这个库执行数据合并任务的python示例项目。
我们通过一些实例代码来学习一下这个模块。
导入库:
我们来获取本模块可以使用的方法列表:
输出:
现在,使用getcwd方法我们可以获取当前工作目录路径。
输出:
我们使用 listdir 来列出当前目录的文件夹/文件:
输出:
如你所看到的,我有两个文件夹: Data 和 Population_Data ,三个文件: README.md markdown 文件, 以及两个名为 tutorial.py
和tutorial_v2.py
的Python文件。
为了获取我的项目文件夹的树形结构,我们来写一个函数,使用 os.walk 来迭代当前目录下每个文件夹中的所有文件。
在当前工作路径中调用这个函数,当前路径可以通过之前学习的函数得到:
输出:
备注:为方便起见,只截取输出一部分。
从输出中可以看到,文件夹的名称以一个 / 结尾,文件夹中的文件向右缩进了四个空格。Data 文件夹中有一个名为 uscitiesv1.4.csv 的csv文件。这个文件包含了美国每个城市的人口数据。Population_Data 文件夹保存所有州的数据,其中包含从 uscitiesv1.4.csv 中提取的每个州的人口数据的独立csv文件。
我们来改变工作目录,进入到包含 “New York”州数据的目录。
现在,我们在这个目录中再次运行 list_files 方法。
输出:
如你所见,我们进入了 Population_Data 文件夹下的 New York 文件夹。
现在,我们在这个目录中创建一个名为 testdir 的新目录。
输出:
如你所见,它在当前工作目录中创建了一个新目录。
我们来创建一个两层嵌套的目录。
输出:
我们得到一个错误。具体来说,我们得到一个 FileNotFoundError 错误。你可能想知道,当我们试图创建目录时,为什么会产生一个 FileNotFound 错误。
原因:Python模块寻找一个名为 level1dir 的目录来创建 level2dir 目录。因为 level1dir 不存在,所以它首先抛出一个 FileNotFoundError错误。
对于这样的目的,我们可以使用 mkdirs 函数来代替,它可以递归地创建多个目录。
查看当前目录树。
输出:
可以看到,现在在 New York 文件夹下有两个子目录:testdir 和 level1dir。level1dir下面有一个名为level2dir 的目录。
os 模块也有修改或删除目录的方法,我将在这里演示。
现在,让我们来使用 rmdir 删除刚才创建的目录:
查看当前目录树来确认此目录已经不存在:
输出:
你可以看到,testdir 目录已经被删除。
我们来尝试删除嵌套目录树 level1dir 和 level2dir。
输出:
正如所见,这里抛出了一个 OSError,这是正确的。它提示 level1dir 目录不是空的。这是正确的,因为它下面有 level2dir。
使用 rmdir 方法不可能删除非空目录,类似于Unix命令行版本。
就像 makedirs 方法一样,我们试一下 rmdirs,它可以递归地删除树结构中的目录。
我们再来看一下树结构:
输出:
它返回前一个目录的状态。
到目前为止,我们已经研究了如何查看、创建和删除嵌套目录结构。现在我们来看一个 os 模块如何帮助数据处理的例子。
为此,我们在目录结构中向上一层。
这一步操作之后,我们再来查看一下目录树结构。
输出:
备注:为了简便起见,只截取输出一部分。
我们通过遍历每个州的目录并合并CSV文件来合并所有州的数据。
由于 os 模块的部分原因,我们能够创建 merge_data,这是一个包含来自每个州的人口数据的数据帧。
在本文中,我们简要地探讨了Python内置 os 模块的不同功能。我们还看到了一个简单的例子,说明如何在数据科学和分析领域中使用该模块。很重要的一点是,要了解 os 还提供了很多的功能,并且可以根据开发人员的需要构建更复杂的逻辑。
英文原文:https://stackabuse.com/introduction-to-python-os-module/
译者:忧郁的红秋裤
我不喜欢一上来就推荐一堆参考资料的东西,那只会让初学者更迷茫。好比一个婴儿,你告诉他学会走路的方法有100种,他只会变的对走路毫无兴趣,他要的只是一种最有效的学会走路的办法,而不是100种。同样的,下面介绍的是我之前刚开始自己学习pytho
现在将几万条数据从日语翻译成中文。因为数据的获取和处理用的是python代码,所以想先尝试翻译部分也用python实现。网上查到的翻译方法有百度、有道以及谷歌翻译(个人)下面会对这三个方法进行简单的测试和分析。模块导入手动安装,命令pip
一、强类型和弱类型语言:C、 C++、 Java 、Python都是强类型的语言。PHP是弱类型的语言。强类型语言是一种强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就是该数据类型。而弱类型语言是一种弱类型定义
乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAIPython势头不减,依旧第一,而且进一步拉开了与其他语言的差距。这一结果,来自IEEE Spectrum2019年度编程语言排行榜。这已经是Python连续3年保持第一。在Pyth
首先,我们先普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。
全球知名TIOBE 编程语言社区发布了11 月编程语言排行榜。下面让我们一起来看看,本月榜单中有哪些值得注意的新变化吧!01PHP即将跌出前十自 20 多年前 TIOBE 指数开始发布以来,PHP 一直常驻在榜单前十,然而最近,该语言已经开
【51CTO.com快译】在本文中,我们将逐一介绍目前人气较高的三种编程语言:PHP、Ruby和Python。我们将分析它们是如何工作的,它们彼此有何不同,谁在使用它们,以及每种语言受欢迎的程度。一、 PHP:互联网上最受欢迎的脚本语言PH
TIOBE 编程社区指数是编程语言流行程度的指标。该指数每月更新一次。评级基于全球熟练工程师、课程和第三方供应商的数量。谷歌、必应、雅虎、维基百科、亚马逊、YouTube 和百度等流行搜索引擎用于计算评分。需要注意的是,TIOBE 指数与最
IT行业现在依然是求职转行人群的首选,那么当下的IT培训机构中IT技术课程类目繁多,尤其是Java培训,PHP培训,Python培训以及前端培训最火,零基础人员如何选择一种适合自己的编程开发语言课程去学习入行呢?前三者属于后端的开发语言,我