文章目录
- 前言
- python-os模块常用api方法和demo练习
- 1. 常用方法
- 2. demo 练习
- 3. demo 执行结果
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
python-os模块常用api方法和demo练习
os 是 Python 标准库中的一个模块(os 模块),用于与操作系统进行交互。它提供了一系列函数来执行与操作系统相关的任务,例如文件和目录操作、进程管理、环境变量访问等。
1. 常用方法
序号 | 方法 | 含义 |
---|---|---|
1 | 得到当前工作目录 | os.getcwd() |
2 | 返回指定目录下的所有文件和目录名 | os.listdir(file_path) |
3 | 获取路径名 | os.path.dirname(path) |
4 | 获取文件名 | os.path.basename(path) |
5 | 获取绝对路径 | os.path.abspath(“test.html”) |
6 | 获取文件属性 | os.stat(path) |
7 | 获取文件大小 | os.path.getsize(path) |
8 | 监测文件是否存在 | os.path.isfile(path) |
9 | 重命名 | os.rename(old,new) |
10 | 删除一个文件 | os.remove(path) |
11 | 监测目录是否存在 | os.path.exists(path) |
12 | 创建单级目录 | os.mkdir(path) |
13 | 创建多级目录 | os.makedirs(path) |
14 | 删除多个文件,注意的是如果目录底下如果有文件的话,是删除不了的 | os.removedirs(path) |
2. demo 练习
import os
import random
import shutil
# 返回指定目录下的所有文件和目录名
def listdir(file_path):
paths = os.listdir(file_path)
print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
return paths
# 新建文件
def newFile(file_path):
with open(file_path, "w", encoding="utf-8") as f:
pass
# 组装path
def getFilePath(add_directory):
# 生成一个介于 0 和 9 之间的随机整数
random_number = random.randint(0, 1000)
return f'{add_directory}\\{random_number}.txt'
# 得到当前工作目录
print(f'得到当前工作目录:{os.getcwd()}')
path = 'D:\\pathonFile\\test.html'
print(f'获取路径名:{os.path.dirname(path)}')
print(f'获取文件名:{os.path.basename(path)}')
print(f'获取绝对路径:【{os.path.abspath("test.html")}】')
print(f'获取文件属性【{path}】:{os.stat(path)}')
print(f'获取文件大小【{path}】:{os.path.getsize(path)}')
# print(f'运行shell命令【cd】:{os.system("cd")}')
file_path = 'D:\pathonFile'
listdir(file_path)
# 写入文件
add_delete_file_path = f'{file_path}\\testWrite.txt'
# 新建文件
print(f'新建文件:{add_delete_file_path}')
newFile(add_delete_file_path)
# 监测文件是否存在
if os.path.isfile(add_delete_file_path):
print(f'新建文件【{add_delete_file_path}】已存在')
listdir(file_path)
# 重命名
rename_file_path = f'{file_path}\\yzy.txt'
print(f'重命名,将testWrite.txt重新命名yzy.txt:{os.rename(add_delete_file_path,rename_file_path)}')
listdir(file_path)
print(f'用来删除一个文件【add_delete_file_path】:{os.remove(rename_file_path)}')
listdir(file_path)
# 新建目录
add_directory = f'{file_path}\\new_directory'
print(f'新建目录:{add_directory}')
# 监测目录是否存在
if os.path.exists(add_directory):
print(f'{add_directory}-已存在')
else:
print(f'创建多级目录:{add_directory}')
# 创建单级目录
# os.mkdir(add_directory)
# 创建多级目录
os.makedirs(add_directory)
listdir(file_path)
for i in range(0, 3):
newFile(getFilePath(add_directory))
# 删除该目录下所有文件
files = listdir(add_directory)
for file_name in files:
# 函数会根据操作系统自动使用适当的分隔符,生成路径
file_path_del = os.path.join(add_directory, file_name)
try:
if os.path.isfile(file_path_del): # 检查是否为文件
os.remove(file_path_del) # 删除文件
print(f"Deleted {file_path_del}")
else:
print(f"Skipped {file_path_del} (not a file)")
except OSError as error:
print(f"Error while deleting {file_path_del}: {error}")
"""
使用 shutil.rmtree() 函数可以递归地删除目录及其所有内容,包括文件和子目录。这样的操作是不可恢复的,因此请确保在使用之前已备份重要的数据。
"""
# print(f'删除多个文件【{add_directory}】:{shutil.rmtree(add_directory)}')
listdir(add_directory)
# 注意的是如果目录底下如果有文件的话,是删除不了的
print(f'删除多个目录【{add_directory}】:{os.removedirs(add_directory)}')
listdir(file_path)
扩展:递归地删除目录及其所有内容,包括文件和子目录
import shutil
shutil.rmtree(path)
3. demo 执行结果
D:\python\python.exe D:/git/python/test/demo-01/08-python-os模块.py
得到当前工作目录:D:\git\python\test\demo-01
获取路径名:D:\pathonFile
获取文件名:test.html
获取绝对路径:【D:\git\python\test\demo-01\test.html】
获取文件属性【D:\pathonFile\test.html】:os.stat_result(st_mode=33206, st_ino=138204213564941818, st_dev=2968367255, st_nlink=1, st_uid=0, st_gid=0, st_size=2750, st_atime=1695801983, st_mtime=1695801983, st_ctime=1695713571)
获取文件大小【D:\pathonFile\test.html】:2750
返回指定目录【D:\pathonFile】下的所有文件和目录名:['test.html', 'test.txt']
新建文件:D:\pathonFile\testWrite.txt
新建文件【D:\pathonFile\testWrite.txt】已存在
返回指定目录【D:\pathonFile】下的所有文件和目录名:['test.html', 'test.txt', 'testWrite.txt']
重命名,将testWrite.txt重新命名yzy.txt:None
返回指定目录【D:\pathonFile】下的所有文件和目录名:['test.html', 'test.txt', 'yzy.txt']
用来删除一个文件【add_delete_file_path】:None
返回指定目录【D:\pathonFile】下的所有文件和目录名:['test.html', 'test.txt']
新建目录:D:\pathonFile\new_directory
创建多级目录:D:\pathonFile\new_directory
返回指定目录【D:\pathonFile】下的所有文件和目录名:['new_directory', 'test.html', 'test.txt']
返回指定目录【D:\pathonFile\new_directory】下的所有文件和目录名:['895.txt', '958.txt', '963.txt']
Deleted D:\pathonFile\new_directory\895.txt
Deleted D:\pathonFile\new_directory\958.txt
Deleted D:\pathonFile\new_directory\963.txt
返回指定目录【D:\pathonFile\new_directory】下的所有文件和目录名:[]
删除多个目录【D:\pathonFile\new_directory】:None
返回指定目录【D:\pathonFile】下的所有文件和目录名:['test.html', 'test.txt']