python - os模块 常用api方法和demo练习

文章目录

  • 前言
    • 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 执行结果

python - os模块 常用api方法和demo练习_第1张图片

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']

你可能感兴趣的:(python,python,java,服务器)