首页 > 编程语言 >python中的os模块和shutil模块

python中的os模块和shutil模块

时间:2024-07-14 09:27:11浏览次数:13  
标签:python 文件夹 模块 print path folder shutil os

目录

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

标签:python,文件夹,模块,print,path,folder,shutil,os
From: https://blog.csdn.net/yanminghe66666/article/details/140408899

相关文章

  • 改进的多目标差分进化算法在电力系统环境经济调度中的应用(Python代码实现)【电气期刊论
     目录 1电力系统环境经济调度数学模型电力系统环境经济调度问题概述多目标差分进化算法的应用应用研究的意义2  改进的多目标差分进化算法3Python代码实现3.1结果3.2Python代码 4完整Python代码、数据下载   改进的多目标差分进化算法不仅可以应用......
  • 5 SAP前台操作手册-PP模块-计划独立需求(PIR)创建、修改(删除)、显示(MD061,MD62,MD63
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的末端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • 6 SAP前台操作手册-PP模块-MRP物料需求计划运行(MD01,MD02,MD04-后台表RESB,EBAN)
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的末端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • 8 SAP前台操作手册-PP模块-生产订单(单个)创建、修改、显示(CO01,CO02,CO03-后台表AFK
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的末端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • 深度优先搜索+算法设计+python
    一、问题描述小明想知道哪个岛是最大的岛屿,请你用深度优先遍历算法来帮助他。如图所示,为了方便计算,我们使用一个二维数组来表示一片海域,用0表示水面,用1表示陆地,我们的任务是找出其中最大的岛屿。注意,岛屿是指上下左右四个方向相连接的陆地区域。二、问题求解deflargest_is......
  • 模型部署 - TensorRT - C++版本与Python版本应如何选择
    从性能角度来看,TensorRTC++版本和Python版本之间确实存在一些差异:C++版本性能更优:TensorRTC++版本使用了更底层的API,可以更好地利用硬件特性,进行更深层的优化。C++版本在内存管理、CPU-GPU数据传输等方面更加高效,这些都可以带来更好的推理性能。Python版本更易......
  • python的列表生成式
    文章目录python的列表生成式1.创建列表2.筛选偶数3.生成99乘法表4.列表推导式中的嵌套循环python的列表生成式Python列表生成式(ListComprehensions)是一种简洁且易于阅读的语法,用于从其他可迭代对象创建列表。它们提供了一种非常Pythonic的方式来创建列表,尤其是......
  • Python学习笔记36:进阶篇(二十五)pygame的使用之事件监听控制切歌和暂停,继续播放
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • 对红酒品质进行数据分析(python)
    http://t.csdnimg.cn/UWg2S数据来源于这篇博客,直接下载好csv文件。这篇内容均在VScode的jupyternotebook上完成,操作可以看我的另一篇博客:http://t.csdnimg.cn/69sDJ一、准备工作1.导入数据库#功能是可以内嵌绘图,并且可以省略掉plt.show()这一步,具体作用是当你调用matplo......
  • 0基础学python-10:函数的定义,调用以及参数
    目录前言1.函数的定义2.函数的调用3.函数的参数<1>必选参数<2 >默认参数<3> 可变参数<4>关键字参数 <5> 命名关键字参数 4.注意事项前言        函数是一段完成特定任务的代码块,可以通过定义、调用和传递参数来实现代码的模块化和......