Python 09-目录操作

Python 09-目录操作

一般的目录操作,使用os模块中的path 子模块

import os.path

1、os模块介绍

os 模块提供了一种使用与操作系统相关的功能的便捷式途径。

  • 如果你只是想读写一个文件,请参阅 open(),
  • 如果你想操作文件路径,请参阅 os.path 模块,
  • 如果你想读取通过命令行给出的所有文件中的所有行,请参阅 fileinput 模块。
  • 为了创建临时文件和目录,请参阅 tempfile 模块,
  • 对于高级文件和目录处理,请参阅 shutil 模块。

os包括以下这些内容:

  • 文件名,命令行参数,以及环境变量。
  • 进程参数
  • 创建文件对象
  • 文件描述符操作
  • 查询终端的尺寸
  • 文件描述符的继承
  • 文件和目录
  • Linux 扩展属性
  • 进程管理
  • 调度器接口
  • 其他系统信息
  • 随机数

相关内容请查阅python官档。

1.1、os 模块的内容

名称类型说明
os模块包含来自 posix 或 nt 的所有函数,例如 取消链接,统计等。
os.namestr是 ‘posix’ 或 ‘nt’
os.curdirstr是一个表示当前目录的字符串(总是 ‘.’)
os.pardirstr是一个代表父目录的字符串(总是’…’)
os.sepstr是(或最常见的)路径名分隔符(’/’ 或 ‘\’)
os.altsepstr是备用路径名分隔符(无或“/”)
os.extsepstr是扩展分隔符(总是’.’)
os.pathsepstr是 $PATH 等中使用的组件分隔符
os.linesepstr是文本文件中的行分隔符(’\r’ 或 ‘\n’ 或 ‘\r\n’)
os.defpathstr是可执行文件的默认搜索路径
os.devnullstr是空设备的文件路径(’/dev/null’等)
os.path模块是 posixpath 或 ntpath

1.2、os 模块包含目录和文件的函数

序号函数
1os.chdir(path)
将当前工作目录更改为 path。
2os.fchdir(fd)
将当前工作目录更改为文件描述符 fd 指向的目录
3os.getcwd()
返回表示当前工作目录的字符串。
4os.getcwdb()
返回表示当前工作目录的字节串 (bytestring)。
5os.get_exec_path(env=None)
返回将用于搜索可执行文件的目录列表
6os.getlogin()
返回通过控制终端进程进行登录的用户名。
7os.listdir(path=’.’)
返回一个包含由 path 指定目录中条目名称组成的列表。
8os.mkdir(path, mode=0o777, *, dir_fd=None)
创建一个名为 path 的目录,应用以数字表示的权限模式 mode。
9os.makedirs(name, mode=0o777, exist_ok=False)
递归目录创建函数。
10os.remove(file, *, dir_fd=None)
移除(删除)文件 file。
11os.rmdir(path, *, dir_fd=None)
移除(删除)目录 path。
12os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
将文件或目录 src 重命名为 dst。
13os.renames(old, new)
递归重命名目录或文件。
14os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
将文件或目录 src 重命名为 dst。
16os.scandir(path=’.’)
返回一个 os.DirEntry 对象的迭代器,它们对应于由 path 指定目录中的条目。
17os.stat(path, *, dir_fd=None, follow_symlinks=True)
获取文件或文件描述符的状态。
18os.symlink(src, dst, target_is_directory=False, *, dir_fd=None)
创建一个指向 src 的符号链接,名为 dst。
19os.unlink(path, *, dir_fd=None)
移除(删除)文件 path。
20os.utime(path, times=None, *, [ns, ]dir_fd=None, follow_symlinks=True)
设置文件 path 的访问时间和修改时间。
21os.walk(top, topdown=True, οnerrοr=None, followlinks=False)
生成目录树中的文件名,方式是按上->下或下->上顺序浏览目录树。

2、path 模块

os.path 模块常用来进行路径的相关操作。

参见 :pathlib 模块提供高级路径对象。

该模块在路径名上实现了一些有用的功能:

序号函数
1os.path.abspath(path)
返回路径 path 的绝对路径(标准化的)。
2os.path.basename(path)
返回路径 path 的基本名称。
3os.path.commonpath(paths)
接受包含多个路径的序列 paths,返回 paths 的最长公共子路径。
4os.path.commonprefix(list)
接受包含多个路径的 列表,返回所有路径的最长公共前缀(逐字符比较)。
5os.path.dirname(path)
返回路径 path 的目录名称。
6os.path.exists(path)
是否存在的路径或已打开的文件描述符
7os.path.getatime(path)
返回 path 的最后访问时间。
8os.path.getmtime(path)
返回 path 的最后修改时间。
9os.path.getsize(path)
返回 path 的大小,以字节为单位。
10os.path.isfile(path)
如果 path 是 现有的 常规文件
11os.path.isdir(path)
path是否目录
12os.path.islink(path)
path是否链接
13os.path.ismount(path)
path是否挂载点
14os.path.join(path, *paths)
智能地拼接一个或多个路径部分
15os.path.normcase(path)
规范路径的大小写。
16os.path.split(path)
将路径 path 拆分为一对,即 (head, tail)

3、当前工作目录 CWD

os.getcwd()返回一个str类型的目录

>>> import os
>>> f = os.getcwd()
>>> f
'E:\\Project\\Python'
>>> type(f)
<class 'str'>

4、当前目录列表 LD

os.listdir(".")返回一个list类型的项目列表

>>> list = os.listdir(".")
>>> type(list)
<class 'list'>
>>> for x in list:
...     print(x)
...
.idea
601238.db
601238.xlsx
appending.xlsx
Dll1.dll
excel_to_sqlite.py
income.xlsx
My.py
my2.py
sample.xlsx
test.xlsx
tmp.txt
列表.py

5、创建目录 MD

os.makedirs(name, mode=511, exist_ok=False) 无返回,可递归创建子目录

>>> md = os.makedirs("tmp/test/file",exist_ok = True)
>>> md
>>> type(md)
<class 'NoneType'>
>>> os.listdir('.')
['.idea', '601238.db', '601238.xlsx', 'appending.xlsx', 'Dll1.dll', 'excel_to_sqlite.py', 'income.xlsx', 'My.py', 'my2.py', 'sample.xlsx', 'test.xlsx', 'tmp', 'tmp.txt', '列表.py']

6、切换目录 CD

os.chdir(path) ,当前目录为上面代码新建tmp

 os.chdir("tmp/test/file")
  
 # 新建一个文件
>>> with open("python.py",'w') as file:
...     file.write("hello world")
...
11

7、删除文件或目录

  • os.remove("python.py")只能删除一个文件或者目录
>>> dir = os.listdir
>>> dir()
['python.py']           # 当前文件夹下 有个新建的python.py 文件


>>> os.remove("python.py")

>>> dir()
[]
  • shutil.rmtree() 可以递归的删除某个目录所有的子目录和子文件
>>> import shutil
>>> shutil.rmtree("tmp")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值