Python 文件和目录管理(os)
简述
目录(或文件夹)是文件和子目录的集合
在 Linux 中,操作系统提供了很多的命令(例如:ls
、cd
),用于文件和目录管理。在 Python 中,有一个 os
模块,也提供了许多便利的方法来管理文件和目录。
| 版权声明:一去、二三里,未经博主允许不得转载。
os 模块
os
:语义为操作系统。所以,os
模块提供的肯定是操作系统相关的功能了(与具体的平台无关)。
如果用 dir()
查看 os
,会发现内容相当多。下面,只列出文件和目录的相关方法:
方法 | 描述 |
---|---|
getcwd()
|
获取当前工作目录 |
chdir(path)
|
将当前的工作目录更改为指定的路径 |
listdir(path=None)
|
列出指定目录中的文件名。如果 path 为 None ,则使用 path='.' 。
|
mkdir(path, mode=511, *, dir_fd=None)
|
创建目录 |
makedirs(name, mode=511, exist_ok=False)
|
递归创建多层目录 |
rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
|
重命名文件或目录 |
remove(path, *, dir_fd=None)
|
删除文件 |
rmdir(path, *, dir_fd=None)
|
删除目录 |
removedirs(name)
|
递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空抛出异常。 |
walk(top, topdown=True, onerror=None, followlinks=False)
|
遍历 top 路径下的所有子目录,返回一个包含 3 个元素的元组:(dirpath, dirnames, filenames) 。
|
os.curdir
|
指代当前目录('.' )
|
os.pardir
|
指代上一级目录('..' )
|
os.sep
|
路径分割符(Windows 为 '\\' ,Linux 为 '/' )
|
os.linesep
|
行终止符(Windows 为 '\r\n' ,Linux 为 '\n' )
|
os.name
|
指代当前使用的操作系统(Windows 系统为 'nt' ,Linux 为 'posix' )
|
简单认识 os
模块后,来看如何使用 - 输出当前的操作系统:
>>> import os
>>> os.name # 操作系统
'posix'
如果是 posix
,说明系统是 Linux;如果是 nt
,则是 Windows 系统。
获取当前工作目录
要获取当前工作目录,有两种方式:
getcwd()
:以 unicode 字符串的形式返回getcwdb()
:以 bytes 字符串的形式返回
>>> os.getcwd()
'/home/wang/workspace'
>>>
>>> os.getcwdb()
b'/home/wang/workspace'
更改当前工作目录
可以使用 chdir()
更改当前工作目录:
>>> os.getcwd() # 更改前
'/home/wang/workspace'
>>>
>>> os.chdir("/etc") # 更改当前工作目录
>>>
>>> os.getcwd() # 更改后
'/etc'
注意: 在 Windows 中,经常也会使用反斜杠(\
),这时使用转义序列(\\
)更安全。
列出文件和目录
目录中的所有文件和子目录可以使用 listdir()
列出:
>>> os.listdir('/') # 列出根目录 / 中的文件和子目录
['boot', 'dev', 'home', 'proc', 'run', 'sys', 'var', 'etc', 'root', 'tmp', 'usr', 'bin', 'sbin', 'lib', 'lib64', 'media', 'mnt', 'opt', 'srv']
>>>
>>> os.getcwd()
'/home/wang/workspace'
>>> os.listdir() # 列出当前目录中的文件和子目录
['python', 'README.txt']
注意: 如果没有指定路径,将从当前目录返回。
创建目录
可以使用 mkdir()
创建目录:
>>> os.listdir() # 创建前
['python', 'README.txt']
>>>
>>> os.mkdir("PHP") # 在当前路径下,创建名为 PHP 的目录
>>>
>>> os.listdir() # 创建后
['python', 'README.txt', 'PHP']
注意: 如果未指定完整路径,则将在当前目录中创建。
重命名文件或目录
rename()
可以重命名文件或目录,第一个参数为旧名称,第二个参数为新名称:
>>> os.listdir() # 重命名前
['python', 'README.txt', 'PHP']
>>>
>>> os.rename("README.txt", "Notice.txt") # 重命名文件
>>> os.rename("PHP", "Java") # 重命名空目录
>>> os.rename("python", "Py") # 重命名非空目录
>>>
>>> os.listdir() # 重命名后
['Notice.txt', 'Java', 'Py']
可以看到,无论目录是否为空,都可以重命名成功。
删除文件或目录
可以使用 remove()
删除文件,使用 rmdir()
删除空目录:
>>> os.listdir() # 删除前
['Notice.txt', 'Java', 'Py']
>>>
>>> os.remove("Notice.txt") # 删除文件
>>> os.rmdir("Java") # 删除空目录
>>>
>>> os.listdir() # 删除后
['Py']
注意: rmdir()
只能删除空目录,无法删除非空目录。否则,会引发 OSError
。
要删除非空目录,需要借助 shutil
模块,使用 rmtree()
:
>>> os.listdir()
['Py']
>>>
>>> os.rmdir("Py") # 无法删除非空目录
...
OSError: [Errno 39] Directory not empty: 'Py'
>>>
>>> import shutil
>>> shutil.rmtree("Py") # 删除非空目录
>>>
>>> os.listdir()
[]
但是,复制、移动文件的相关函数居然在 os
模块中不存在!原因是复制文件并非由操作系统提供的系统调用。
幸运的是,shutil
模块提供了 copy()
、move()
相关的函数,还可以在 shutil
模块中找到很多实用函数,它们可以看做是 os
模块的补充。
遍历目录
walk()
是遍历目录常用的方法,它返回一个包含 3 个元素的元组:(dirpath, dirnames, filenames)
:
dirpath
:以字符串形式返回该目录下所有的绝对路径dirnames
:以列表形式返回每一个绝对路径下的目录filesnames
:以列表形式返回该路径下所有文件
使用命令 tree
,以树状图列出目录的内容:
[wang@localhost workspace]$ tree
.
├── python
│ ├── Notice.txt
│ └── os
│ ├── test2.py
│ └── test.py
└── README.txt2 directories, 4 files
使用 walk()
方法:
>>> for root, dirs, files in os.walk("/home/wang/workspace"):
... print(root)
... print(dirs)
... print(files)
... print()
...
/home/wang/workspace
['python']
['README.txt']/home/wang/workspace/python
['os']
['Notice.txt']/home/wang/workspace/python/os
[]
['test.py', 'test2.py']
Python 文件和目录管理(os)相关推荐
- python引入文件并执行_文件操作和导入os模块执行文件和目录管理操作
文件概念以及文本文件和二进制文件的区别 计算机的CPU如果想要访问保存在磁盘上的文件,第一步需要把磁盘上的文件数据加载到内存中.因为内存的读写速度要比磁盘的读写速度快很多. 计算机只能识别0101这种 ...
- Python 文件与目录操作方法总结
Python 有很多内置的模块和函数可用于文件的操作处理,这些函数都分布在几个模块上:如 os , os.path , shutil 和 pathlib 等等.本文收集了许多您需要知道的函数,以便在 ...
- linux 文件与目录管理命令
2019独角兽企业重金招聘Python工程师标准>>> 目录与路径: 1.cd (change directory ) : 改变当前的目录,语法:cd [相对路径/绝对路径] cd ...
- python 文件和目录操作
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() os.getcwd() 输出 ...
- python文件和目录操作方法大全(含实例)
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名 ...
- Python 文件和目录操作总结
Python文件和目录操作总结: 1. Python 中os模块基本命令 头文件 import os # 提供对操作系统进行调用的接口 os常用指令 1 os.getcwd() # 获取当前工作目录, ...
- python文件和目录操作方法
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...
- python文件及目录操作(copytree)
http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块 ...
- linux proc 目录清理_Linux文件及目录管理命令基础
目录 前言 下面是常用命令的介绍,这些命令都是以后会用到的,熟练掌握便是最终的目标. 第一章 Linux文件及目录管理命令基础 1.1 pwd: 显示当前所在位置的信息 [功能说明] 显示当前所在目录 ...
最新文章
- Docker镜像使用
- 20165313-张晨晖课设个人报告
- django-TDD
- c++中类型用new和不用new的区别
- CommandName 与 CommandArgument
- 长得像就是双胞胎?图样图森破
- 自定义微信小程序顶部导航栏(自适应微信胶囊按钮,flex布局)
- 统计知识基础(三)常用构造估计量的两种方法——矩估计、最大似然估计
- jstack 工具 查看JVM堆栈信息
- CSDN成立20周年书法作品集
- m基于EM参数估计的Gamma随机过程电池剩余寿命预测matlab仿真
- SQL基本语句使用总结
- chromium中的GN构建系统
- 老李聊股:至正股份(第二篇)
- c# windowservice服务安装注意细节
- 打卡机核心功能实现(C语言)
- VS2019编译OpenSees 3.0.0 总结
- 山寨云主机充斥市场 教您辨别真假云主机
- 亚马逊云科技:QuickCEP一站式SaaS营销工具,提升跨境电商企业的品牌竞争力
- 路由器dhcp服务异常不能上网_路由器dhcp服务异常 关于路由器dhcp服务异常怎么办?...