我们编写的python程序既可能在Windows下运行,也有可能在Linux和Mac OS下运行,一般的操作对于跨平台而言问题都不大,而文件系统的相关操作在不同的平台上是具有较大差异的。我们当然可以使用python中system函数或者popen函数运行终端指令,但是这样就破坏了跨平台的兼容性。如果确认自己的程序只在一种平台上运行,这样处理也是可以接受的,如果自己的程序需要跨平台运行,那么关于文件系统的相关操作最好使用os模块中封装的系列函数完成。本文就讨论一下python中封装的文件系统相关操作,以便使所开发的代码具备跨平台的兼容性。

1. 信息查看

在bash中我们常常运行pwd指令查看当前目录,运行ls指令,查看当前目录下的文件和子目录,也会使用一款工具tree来查看指定目录下的所有子目录和文件。在python中封装了这个三种功能到三个函数中,分别是:os.getcwd(), os.listdir(), os.walk()。其中os.walk()函数返回的是一个迭代对象,迭代对象的每一个元素为一个三元元组,第一个位置保存目录,第二个位置保存子目录列表,第三个位置保存文件列表。该函数递归获取指定目录下的所有子目录和文件路径。

2. 修改目录和文件

(1) 改变工作目录

在shell中,常常使用cd指令改变当前的工作目录,python封装了os.chdir()函数来实现这个功能。

改变工作目录

(2) 路径拼接

使用过Windows和Linux的朋友应该知道,这两个操作系统中文件路径的分隔符是不一样的,这在操作文件系统时是一件令人烦躁的地方,所幸python封装了一个函数来解决这个问题。使用os.path.join()函数来连接路径的各个部分,则可以得到一个操作系统对应的合法路径。

路径拼接

(3) 创建目录

在终端中,我们常常用mkdir -p指令来创建目录,在python中就可以使用os.makedirs()函数来创建目录。

创建目录

(4) 拷贝文件

在终端中,我们使用cp指令来拷贝文件或目录,在python中可以使用shutil.copy2函数来拷贝。

拷贝文件

(5) 移动或重命名文件

在shell中,我们使用mv指令来移动文件或目录,或者修改文件名,在python中可以使用shutil.move来实现。

移动或重命名文件

(6) 删除文件

python中提供了os.remove函数来完成shell中的rm指令对应的删除文件的功能。

删除文件

(7) 删除目录

如果需要删除目录,在终端中,我们会使用rm -r指令完成,在python中可以使用shutil.rmtree实现这种需求。

删除目录

3. 文件读写

除上述的文件系统操作外,还有一类文件操作,即文件读写。python使用open函数打开文件获得一个迭代对象,然后通过对这个迭代对象进行遍历来读取文件内容。通过向open函数传参来控制读方式打开还是写方式打开。

读写文件

到此,对python中文件系统相关的操作讨论完毕。本文在写作之前,参考英文网页链接如下:https://towardsdatascience.com/10-python-file-system-methods-you-should-know-799f90ef13c2 。本文的notebook版文件在github上的cnbluegeek/notebook仓库中共享,欢迎感兴趣的朋友前往下载。

python查看工作目录_闲话python-36:文件系统操作相关推荐

  1. python爬小说目录_【python入门爬虫】爬取笔趣阁小说

    [Python] 纯文本查看 复制代码import time from bs4 import BeautifulSoup import requests import urllib.parse #模拟 ...

  2. python生成word目录_使用Python更新MS Word .docx文档的目录(目录)

    我使用python包" python-docx"来修改MS Word .docx文档的结构和内容.该软件包无法更新TOC(目录)[Python: Create a "Ta ...

  3. python查看运行内存占用_利用Python如何实时检测自身内存占用

    前言 最近在做文本统计,用 Python 实现,遇到了一个比较有意思的难题--如何保存统计结果. 直接写入内存实在是放不下,十几个小时后内存耗尽,程序被迫关闭.如果直接写入数据库吧,每次写入又太慢了, ...

  4. python工作者工作环境_搭建python环境

    搭建python环境 windows下可以安装enthought 集成的 EPDFree32安装包安装python用这个集成了基本所有需要的插件和环境. 装完以后可以运行桌面上pylab程序进入pyt ...

  5. python自然语言处理书籍_精通Python自然语言处理pdf

    自然语言处理(NLP)是有关计算语言学与人工智能的研究领域之一.NLP主要关注人机交互,它提供了计算机和人类之间的无缝交互,使得计算机在机器学习的帮助下理解人类语言. 本书详细介绍如何使用Python ...

  6. 使用ls命令查看Linux的目录结构,linux查看工作目录文件ls命令用法详解

    查看工作目录文件ls ls命令是Linux下最常用的命令.ls命令就是list的缩写.默认情况下ls用来查看当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单.通过ls命令 ...

  7. linux python默认安装目录_怎么查看python的安装目录

    怎么查看python的安装目录? linux中一般安装后的默认路径如下#!/usr/bin/env python 或者 #!/usr/locat/bin/python 如果没有找到,可以通过命令查询p ...

  8. 如何查看python的工作目录_Python3基础 os listdir curdir查看当前工作目录的所有文件的名字...

    ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdo ...

  9. python 只循环目录_看完这篇文章,你的Python基础就差不多了

    世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 前言 本文是基于黑马程序员2019年的Python基础班的内容编写的,以2019年的资料为蓝本,2018年的资料为补充,还参考了一些网 ...

最新文章

  1. 2021年大数据Spark(十七):Spark Core的RDD持久化
  2. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示
  3. 伍迷创意随想集 之 烧菜小帮手
  4. jQuery1.9+中删除了live以后的替代方法
  5. 比git更加方便快捷的GitHub 仓库管理工具GitHub desktop
  6. 深度学习如何验证自己的想法
  7. Builder 模式
  8. Oracle中获取文件中的数据,操作oracle中的数据文件
  9. QQ通讯录VS360通讯录对新建信息界面中草稿的处理
  10. 如何解决“There is no locally stored library”的问题
  11. 织梦采集插件,无需采集规则,补损值
  12. codeforces1299B Aerodynamic
  13. 【信号与系统】拉普拉斯变换
  14. 通过Ubuntu16.04编译Android下的osip动态库
  15. Python自动化运维之1、Python入门
  16. Mysql中使用sql语句查询前一个天、前一周、前一月时间的方法
  17. 嵌入式技术基础与实践(第三版)笔记
  18. ACM,IEEE ,Elsevier和Springer旗下期刊
  19. Homestead 安装 phpMyAdmin 作为数据库管理客户端 — Laravel 实战 果酱 API 教程
  20. WWDC2019:离开手机,苹果靠什么“挽尊”

热门文章

  1. 保姆级教程:Spring Boot 单元测试
  2. Redis+Nginx+设计模式+Spring全家桶+Dubbo+阿里P7技术精选文档
  3. 为什么 Redis 单线程能支撑高并发?
  4. 每日一皮:死循环的深刻理解...
  5. Spring Boot如何优雅的校验参数
  6. Logback 配置文件这么写,日志 TPS 提高 10 倍
  7. 无卷积骨干网络:金字塔Transformer,提升目标检测/分割等任务精度(附源代码)
  8. 点云处理库pyntcloud
  9. rpm version `XZ_5.1.2alpha‘ not found
  10. flask简单的登录demo