Python基础教程

005_目录模块os

目录模块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__']

这里需要注意,这样的程序只能运行一次,第二次运行程序时报错,因为这些文件已经不在了(要么被改名,要么被删除了)。

如果要运行多次,那么需要在运行之前准备好要操作的文件,可以通过鼠标右键手动添加新文件或文件夹,用来准备程序运行环境。

这篇文章对您有用吗?

我们要如何帮助您?