目录
目录模块os
目录就是文件夹,用来管理文件。Python中os模块提供了大量目录操作函数。
Python中常用的目录操作函数
Python中常用的目录操作函数有:
- os.getcwd():查看当前位置(文件夹路径),能获取工程运行目录路径
- os.chdir(path):切换路径(文件夹),相当于Linux或DOS命令窗口中的cd命令
- os.listdir(path):获取当前文件夹内子文件夹和文件列表,相当于Linux中的ls命令,或DOS中的dir命令
- os.mkdir(path[, mode]):创建文件夹
- os.rename(src, dst):重命名文件夹或文件
- os.remove(path):删除文件
- os.rmdir(path):删除空文件夹(如果文件夹不为空,则需要处理成空,或者用复制模块shutil来删除)
还有一些操作函数(了解)
-
os.chmod(path, mode):更改权限,在Unix中可用
-
os.chown(path, uid, gid):更改文件所有者,在Unix中可用
-
os.removedirs(path):删除文件夹及子文件夹(递归处理)
- os.pardir():获取当前文件夹的父级目录
文件夹路径切换与内容查看
切换文件夹路径,查看文件夹内文件列表
文件目录结构如下,目录路径为E:wkp01p00test01atestpkg。
atestpkg
├─ mytools
├─ __init__.py
├─ myadd.py
└─ myappend.py
├─ bfile
├─ t05.py
├─ t06.py
└─ t07.py
其中python隐藏文件夹__pycache__未展示。
示例程序如下
import os
# 查看当前程序运行所在路径,即工程目录路径
print(os.getcwd()) # E:wkp01p00test01atestpkg
# 列出当前文件夹中内容
print(os.listdir()) # ['bfile', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
# 切换到当前文件夹的子文件夹中
os.chdir("mytools")
# 获取切换后的路径位置
print(os.getcwd()) # E:wkp01p00test01atestpkgmytools
# 查看此子文件夹中的内容
print(os.listdir()) # ['myadd.py', 'myappend.py', '__init__.py', '__pycache__']
文件夹的创建
创建时要保证当前文件夹内没有同名文件夹,否则报错(这与用鼠标右键新建文件夹一样,不能有重名文件夹)。
import os
print(os.getcwd()) # E:wkp01p00test01atestpkg
print(os.listdir()) # ['bfile', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
# 在当前文件夹中创建一个子文件夹myfolder
os.mkdir("myfolder")
print(os.listdir()) # ['bfile', 'myfolder', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
#
os.chdir("myfolder")
fdlist=["fd1","fd2","fd3"]
for i in range(len(fdlist)): # 用循环的方式创建多个文件夹
os.mkdir(fdlist[i])
print(os.listdir()) # ['fd1', 'fd2', 'fd3']
创建后的文件目录结构
atestpkg
├─ myfolder
├─ fd1
├─ fd2
└─ fd3
├─ mytools
├─ __init__.py
├─ myadd.py
└─ myappend.py
├─ bfile
├─ t05.py
├─ t06.py
└─ t07.py
重命名文件(夹)
rename()方法语法格式如下:
os.rename(src, dst)
说明:
- src -- 要修改的目录名
- dst -- 修改后的目录名
示例程序如下
import os
print(os.getcwd()) # E:wkp01p00test01atestpkg
print(os.listdir()) # ['bfile', 'myfolder', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
os.rename("bfile","bfile_new") # 重命名文件
os.rename("myfolder","myfolder_new") # 重命名文件夹
print(os.listdir()) # ['bfile_new', 'myfolder_new', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
删除文件(夹)
删除文件和删除文件夹是两种方法
- os.remove(path):删除文件
- os.rmdir(path):删除空文件夹
import os
print(os.getcwd()) # E:wkp01p00test01atestpkg
print(os.listdir()) # ['bfile_new', 'myfolder_new', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
mypath=os.getcwd()
os.remove(mypath+"\"+"bfile_new") # 删除文件 bfile_new
os.rmdir(mypath+"\"+"myfolder_new\fd1") # 删除文件夹 fd1
print(os.listdir()) # ['myfolder_new', 'mytools', 't05.py', 't06.py', 't07.py', '__pycache__']
这里需要注意,这样的程序只能运行一次,第二次运行程序时报错,因为这些文件已经不在了(要么被改名,要么被删除了)。
如果要运行多次,那么需要在运行之前准备好要操作的文件,可以通过鼠标右键手动添加新文件或文件夹,用来准备程序运行环境。