python查看工作目录_闲话python-36:文件系统操作
我们编写的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:文件系统操作相关推荐
- python爬小说目录_【python入门爬虫】爬取笔趣阁小说
[Python] 纯文本查看 复制代码import time from bs4 import BeautifulSoup import requests import urllib.parse #模拟 ...
- python生成word目录_使用Python更新MS Word .docx文档的目录(目录)
我使用python包" python-docx"来修改MS Word .docx文档的结构和内容.该软件包无法更新TOC(目录)[Python: Create a "Ta ...
- python查看运行内存占用_利用Python如何实时检测自身内存占用
前言 最近在做文本统计,用 Python 实现,遇到了一个比较有意思的难题--如何保存统计结果. 直接写入内存实在是放不下,十几个小时后内存耗尽,程序被迫关闭.如果直接写入数据库吧,每次写入又太慢了, ...
- python工作者工作环境_搭建python环境
搭建python环境 windows下可以安装enthought 集成的 EPDFree32安装包安装python用这个集成了基本所有需要的插件和环境. 装完以后可以运行桌面上pylab程序进入pyt ...
- python自然语言处理书籍_精通Python自然语言处理pdf
自然语言处理(NLP)是有关计算语言学与人工智能的研究领域之一.NLP主要关注人机交互,它提供了计算机和人类之间的无缝交互,使得计算机在机器学习的帮助下理解人类语言. 本书详细介绍如何使用Python ...
- 使用ls命令查看Linux的目录结构,linux查看工作目录文件ls命令用法详解
查看工作目录文件ls ls命令是Linux下最常用的命令.ls命令就是list的缩写.默认情况下ls用来查看当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单.通过ls命令 ...
- linux python默认安装目录_怎么查看python的安装目录
怎么查看python的安装目录? linux中一般安装后的默认路径如下#!/usr/bin/env python 或者 #!/usr/locat/bin/python 如果没有找到,可以通过命令查询p ...
- 如何查看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 ...
- python 只循环目录_看完这篇文章,你的Python基础就差不多了
世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 前言 本文是基于黑马程序员2019年的Python基础班的内容编写的,以2019年的资料为蓝本,2018年的资料为补充,还参考了一些网 ...
最新文章
- 2021年大数据Spark(十七):Spark Core的RDD持久化
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示
- 伍迷创意随想集 之 烧菜小帮手
- jQuery1.9+中删除了live以后的替代方法
- 比git更加方便快捷的GitHub 仓库管理工具GitHub desktop
- 深度学习如何验证自己的想法
- Builder 模式
- Oracle中获取文件中的数据,操作oracle中的数据文件
- QQ通讯录VS360通讯录对新建信息界面中草稿的处理
- 如何解决“There is no locally stored library”的问题
- 织梦采集插件,无需采集规则,补损值
- codeforces1299B Aerodynamic
- 【信号与系统】拉普拉斯变换
- 通过Ubuntu16.04编译Android下的osip动态库
- Python自动化运维之1、Python入门
- Mysql中使用sql语句查询前一个天、前一周、前一月时间的方法
- 嵌入式技术基础与实践(第三版)笔记
- ACM,IEEE ,Elsevier和Springer旗下期刊
- Homestead 安装 phpMyAdmin 作为数据库管理客户端 — Laravel 实战 果酱 API 教程
- WWDC2019:离开手机,苹果靠什么“挽尊”
热门文章
- 保姆级教程:Spring Boot 单元测试
- Redis+Nginx+设计模式+Spring全家桶+Dubbo+阿里P7技术精选文档
- 为什么 Redis 单线程能支撑高并发?
- 每日一皮:死循环的深刻理解...
- Spring Boot如何优雅的校验参数
- Logback 配置文件这么写,日志 TPS 提高 10 倍
- 无卷积骨干网络:金字塔Transformer,提升目标检测/分割等任务精度(附源代码)
- 点云处理库pyntcloud
- rpm version `XZ_5.1.2alpha‘ not found
- flask简单的登录demo