python中的os模块和shutil模块

目录

os

1. 获取当前脚本绝对路径

2.获得工作路径;

3.该路径文件和目录

4.walk,查看目录下所有的文件(含子孙文件)

5.创建文件夹

6.os.makedirs(path)

7.路径拼接

8. 获取当前文件的上级目录

9.判断路径是否存在

10.是否是文件夹

11.进程管理

12.删除空文件夹

13.删除文件

14.查看状态

15.删除非空文件

16.遍历文件

shutil

复制文件:

复制文件并保留元数据:

移动文件:

删除目录及其内容:

创建压缩包:

解压压缩包:

获取磁盘使用情况:


os

1. 获取当前脚本绝对路径

abs_path = os.path.abspath(__file__)
print(abs_path)

2.获得工作路径;

os.getcwd()

3.该路径文件和目录

data = os.listdir("/Users/wupeiqi/PycharmProjects/luffyCourse/day14/commons")
print(data)

4.walk,查看目录下所有的文件(含子孙文件)

import os
path = r"E:\桌面\计算机\全栈\django\django项目\untitled1"

for path,dirs,files in os.walk(path):
    print(path)
    print(dirs)
    print(files)
    print("")

5.创建文件夹

os.mkdir(path)

含义:传入一个path路径,创建单层(单个)文件夹;

注意:如果文件夹已经存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;

os.getcwd()
path1 = os.getcwd()+“\yan”
os.mkdir(path1)

6.os.makedirs(path)

含义:传入一个path路径,生成一个递归的文件夹;

注意:如果文件夹存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;

path = os.path.join(path1, 'xx', 'oo', 'uuuu')
if not os.path.exists(path):
    os.makedirs(path)

7.路径拼接

p1 = os.path.join(base_path, 'xx')
print(p1)

p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')
print(p2)

8. 获取当前文件的上级目录

base_path = os.path.dirname( os.path.dirname(路径) )
print(base_path)

9.判断路径是否存在

exists = os.path.exists(p1)
print(exists)

10.是否是文件夹

file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')
is_dir = os.path.isdir(file_path)
print(is_dir) # False

folder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
is_dir = os.path.isdir(folder_path)
print(is_dir) # True

11.进程管理

os.system(command): 运行 shell 命令并返回命令的退出状态码。

os.startfile(path[, operation]): 在 Windows 上,此函数可以打开文件或运行程序。

python复制
# 运行 shell 命令
exit_code = os.system('echo Hello, World!')

# 在 Windows 上打开一个文件
os.startfile('C:\\path\\to\\file.txt')

12.删除空文件夹

os.rmdir(folder_path)

# 删除空文件夹
folder_path = 'empty_folder'
try:
    os.rmdir(folder_path)
    print(f"文件夹 {folder_path} 已被删除。")
except OSError as e:
    print(f"删除空文件夹时出错: {e}")

13.删除文件

import os


# 删除文件
file_path = 'example.txt'
try:
    os.remove(file_path)  # 或者使用 os.unlink(file_path)
    print(f"文件 {file_path} 已被删除。")
except OSError as e:
    print(f"删除文件时出错: {e}")

14.查看状态

import os

    # 使用双反斜杠避免路径中的转义问题
    stat_info = os.stat('E:\\桌面\\计算机\\全栈\\django\\django项目\\untitled1\\ll.py')
    print(stat_info)

15.删除非空文件

# 删除非空文件夹
non_empty_folder_path = 'non_empty_folder'
try:
    shutil.rmtree(non_empty_folder_path)
    print(f"非空文件夹 {non_empty_folder_path} 已被删除。")
except OSError as e:
    print(f"删除非空文件夹时出错: {e}")

16.遍历文件

data = os.walk("/Users/wupeiqi/Documents")
for path, folder_list, file_list in data:
    for file_name in file_list:
        file_abs_path = os.path.join(path, file_name)
        ext = file_abs_path.rsplit(".",1)[-1]
        if ext == "mp4":
            print(file_abs_path)

里面涉及到了shutil模块,我们下面细讲

shutil

  1. 复制文件

python复制
import shutil

# 将文件 'example.txt' 复制到当前目录
shutil.copy('example.txt', '.')

  1. 复制文件并保留元数据

python复制
import shutil

# 将文件 'example.txt' 复制到 'copy_example.txt',并保留元数据
shutil.copy2('example.txt', 'copy_example.txt')

  1. 移动文件

python复制
import shutil

# 将文件 'example.txt' 移动到 'new_folder' 目录
shutil.move('example.txt', 'new_folder/example.txt')

  1. 删除目录及其内容

python复制
import shutil

# 删除 'old_folder' 目录及其所有内容
shutil.rmtree('old_folder')

  1. 创建压缩包

python
import shutil

# 创建一个名为 'archive.zip' 的压缩包,包含 'folder_to_zip' 目录的内容
shutil.make_archive('archive', 'zip', 'folder_to_zip')
  1. 解压压缩包

python
import shutil

# 解压 'archive.zip' 到当前目录
shutil.unpack_archive('archive.zip', '.')
  1. 获取磁盘使用情况

python复制
import shutil

# 获取当前目录的磁盘使用情况
usage = shutil.disk_usage('.')
print(f"Total: {usage.total}, Used: {usage.used}, Free: {usage.free}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值