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}")

相关推荐

  1. pythonshutil模块

    2024-07-14 17:00:02       48 阅读
  2. pythonshutil 压缩打包模块

    2024-07-14 17:00:02       25 阅读
  3. pythonos模块sys模块使用

    2024-07-14 17:00:02       31 阅读
  4. shutil模块

    2024-07-14 17:00:02       35 阅读
  5. Pythonos模块常用方法

    2024-07-14 17:00:02       42 阅读
  6. PythonOS模块

    2024-07-14 17:00:02       41 阅读
  7. Python os模块

    2024-07-14 17:00:02       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 17:00:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 17:00:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 17:00:02       58 阅读
  4. Python语言-面向对象

    2024-07-14 17:00:02       69 阅读

热门阅读

  1. Redis 底层数据结构

    2024-07-14 17:00:02       21 阅读
  2. C# Static的一些理解

    2024-07-14 17:00:02       17 阅读
  3. 多线程编程中的条件变量及其优化

    2024-07-14 17:00:02       15 阅读
  4. STM32F103控制0.96寸OLED显示

    2024-07-14 17:00:02       15 阅读
  5. GESP C++ 三级真题(2023年9月)T1 ⼩ 杨储蓄

    2024-07-14 17:00:02       14 阅读
  6. 2024年交安安全员考试题库及答案

    2024-07-14 17:00:02       19 阅读
  7. 2024年高校辅导员考试题库及答案

    2024-07-14 17:00:02       25 阅读
  8. VMM、VMI、VIM的简介

    2024-07-14 17:00:02       16 阅读
  9. Python 面试热门问题五

    2024-07-14 17:00:02       22 阅读
  10. TCP流量控制是怎么实现的?

    2024-07-14 17:00:02       24 阅读
  11. C#开发翻译较好的API

    2024-07-14 17:00:02       19 阅读
  12. C语言西蒙说游戏

    2024-07-14 17:00:02       25 阅读