python的OS模块和shutil模块使用

Python os 与 shutil 模块学习指南(DeepSeek版) 一份针对 Python 的 os 和 shutil 模块的学习文档,包含功能、对比和实用代码示例。 阅读详情

一. OS模块

  os 模块提供了一个与操作系统交互的接口,可以用来处理文件和目录的路径、创建和删除目录、执行系统命令、获取和修改环境变量等操作。

1.文件和目录操作

1.1 获取当前工作目录
import os

current_dir = os.getcwd()
print(current_dir)  # 输出当前工作目录

os.getcwd() 用于获取当前工作目录。

1.2 改变工作目录
import os

os.chdir(r'C:\Users\31052\Desktop') # 切换到指定目录
current_dir = os.getcwd()
print(current_dir) # 验证当前工作目录已改变

os.chdir(path) 用于改变当前的工作目录。

1.3 创建目录和删除目录
  • 创建目录
import os

os.mkdir('new_dir')  # 创建一个新目录
  • 递归创建多级目录
os.makedirs('parent/child', exist_ok=True)  # 创建父子目录,exist_ok=True 如果目录已存在不会抛出异常
  • 删除空目录
os.rmdir('empty_dir')  # 删除空目录
  • 删除多级空目录
os.removedirs('parent/child')  # 如果是空目录,会递归删除父目录
1.4 列出目录内容
import os

files = os.listdir('/path/to/directory')
print(files)  # 返回目录下所有文件和子目录的名称列表

os.listdir(path) 返回指定目录中的所有文件和子目录。

1.5 判断文件路径是否存在
import os

print(os.path.exists('some_path'))  # 检查路径是否存在
1.6 获取文件和目录的详细信息
  • 获取文件的大小
import os
size = os.path.getsize('file.txt')
print(f"文件大小: {size} 字节")
  • 获取文件的最后修改时间
import os
last_modified_time = os.path.getmtime('file.txt')
print(f"文件最后修改时间: {last_modified_time}")

2. 文件路径操作

2.1 拼接文件路径
import os
path = os.path.join('folder', 'subfolder', 'file.txt')
print(path)  # 输出:folder/subfolder/file.txt

os.path.join() 用于将多个路径组合成一个完整路径。

2.2 判断路径类型
  • 是否为文件
import os
print(os.path.isfile('file.txt'))  # 判断路径是否为文件
  • 是否为目录
import os
print(os.path.isdir('folder'))  # 判断路径是否为目录
2.3 获取绝对路径
import os
absolute_path = os.path.abspath('file.txt')
print(absolute_path)  # 输出文件的绝对路径

os.path.abspath() 用于获取指定路径的绝对路径。

3. 其他常用功能

3.1 执行系统命令
import os
os.system('echo Hello, World!')  # 输出 Hello, World!

os.system(command) 用于执行 shell 命令,但返回值较为简单,不适合捕获输出。

3.2 环境变量操作
import os
print(os.environ)  # 输出当前所有环境变量

# 获取环境变量的值
print(os.getenv('HOME'))

# 设置环境变量
os.environ['MY_VAR'] = 'some_value'

os.environ 用来访问和修改环境变量。

二. shutil模块

shutil 模块提供了更高级的文件和目录操作,主要用于文件的复制、删除、移动、归档等任务。它非常适合用于处理大型文件或需要进行目录树操作的任务。

1. 文件和目录操作

1.1 复制文件
import shutil
shutil.copy('source.txt', 'destination.txt')  # 复制文件到目标位置

shutil.copy(src, dst) 复制文件,将 src 文件复制到 dst 路径。

1.2 复制文件并保留元数据
import shutil
shutil.copy2('source.txt', 'destination.txt')  # 复制文件并保留元数据(如修改时间)

shutil.copy2(src, dst) 除了复制文件内容外,还会保留文件的元数据。

1.3 复制整个目录
import shutil
shutil.copytree('source_dir', 'destination_dir')  # 复制整个目录

shutil.copytree(src, dst) 复制整个目录及其内容到目标位置。

1.4 移动文件或目录
import shutil
shutil.move('source.txt', 'destination.txt')  # 移动文件或目录

shutil.move(src, dst) 用于将文件或目录从 src 移动到 dst。

1.5 删除目录及其内容
import shutil
shutil.rmtree('directory_to_delete')  # 删除目录及其所有内容shutil.rmtree(path) 

递归删除指定路径下的目录及其内容。

2. 压缩和解压缩

2.1 创建压缩文件
import shutil
shutil.make_archive('archive_name', 'zip', '/path/to/directory')  # 创建 zip 格式的压缩文件

shutil.make_archive(base_name, format, root_dir) 用于创建归档文件。format 可以是 ‘zip’、‘tar’、‘gztar’ 等。

2.2 解压缩文件
import shutil
shutil.unpack_archive('archive_name.zip', '/path/to/extract')  # 解压到指定目录

shutil.unpack_archive(filename, extract_dir) 解压指定的归档文件到目标目录。

3. 示例:读取文件内容并移动

假设你需要从一个目录读取所有 .txt 文件的内容,然后将它们移动到另一个目录并重命名:

import os
import shutil

source_directory = '/path/to/source_directory'
destination_directory = '/path/to/destination_directory'

# 确保目标目录存在
if not os.path.exists(destination_directory):
    os.makedirs(destination_directory)

# 遍历源目录中的所有文件
for filename in os.listdir(source_directory):
    if filename.endswith('.txt'):
        source_file = os.path.join(source_directory, filename)
        
        # 读取文件内容
        with open(source_file, 'r') as file:
            content = file.read()
        
        # 将文件内容保存到目标目录
        new_filename = f"moved_{filename}"
        destination_file = os.path.join(destination_directory, new_filename)
        with open(destination_file, 'w') as new_file:
            new_file.write(content)

        # 移动源文件到目标目录
        shutil.move(source_file, os.path.join(destination_directory, filename))
        print(f"文件 {filename} 已移动并重命名为 {new_filename}")

总结

  • os 模块 主要用于操作系统级别的任务,如文件和目录操作、环境变量、路径操作等。
  • shutil 模块 提供了更高级的文件和目录操作,尤其是用于复制、移动、删除、归档、解压等任务。
Python常用模块os和shutil学习 os就是“operating system”的缩写,python中的os模块提供了对目录或者文件的新建/删除/查看等属性,还提供了对文件以及目录的路径操作,比如创建、删除目录等。关于OS... 阅读详情

相关推荐

C#集成Bartender:动态图片标签打印的实战与优化

本文详细介绍了在C#程序中集成Bartender实现动态图片标签打印的实战方法与优化策略。通过具名数据源绑定、图片对象尺寸控制等核心技巧,解决了动态图片显示/隐藏的难题,并提供了从模板设计、代码架构到性能优化、错误处理的全流程指南,帮助开发者构建稳定高效的工业级标签打印系统。

weixin_29216957的博客 431

【详解】Python基础操作之os模块常用命令

os模块是Python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使用操作系统功能的方法。

自动化软件测试 2164

告别命令行恐惧!用TBtools的MCScanX插件,5分钟搞定拟南芥和水稻的基因组共线性分析

本文介绍如何利用TBtools的MCScanX插件快速完成拟南芥和水稻的基因组共线性分析,无需命令行操作,5分钟即可生成专业可视化结果。通过图形化界面简化传统MCScanX的复杂流程,特别适合非生物信息背景的研究者,显著提升基因组数据分析效率。

dianzhuique8587的博客 377

Python执行系统命令的方法有哪些?

注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行之后的返回值不等,这是因为调用了os.wait()的缘故,具体原因就得去了解下系统wait()的实现了。这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。该模块是一个功能强大的子进程管理模块,是替换os.system, os.spawn*等方法的一个模块。以上是列举的python执行系统命令的方法,如果需要这方面的操作,可以参考一下!Python执行系统命令的方法有哪些?

xiangxueerfei的博客 7118

Axial Attention 和 Criss-Cross Attention及其代码实现

Axial Attention 和 Criss-Cross Attention及其代码实现 ​ 文章目录Axial Attention 和 Criss-Cross Attention及其代码实现1 Criss - Cross Attention介绍1.1 引言1.2 理论实现1.2.1 获取权重A1.2.2 Affinity操作1.3.3 全部信息获取1.3 代码实现1.3.1 官方实现1.3.2 纯pytorch实现2 Axial Attention 介绍2.1 引言2.2 理论实现2.3 代码实现2.3

fzl的博客 2万+

Oracle入门——基础语法篇

ROWID是Oracle中的一个伪列,用于唯一标识数据库中的每一行。在查询中,可以使用ROWID来定位和操作特定的行,例如,删除特定的行或更新特定的行。在Oracle中,子查询是指嵌套在另一个查询内部的查询语句,它可以作为主查询的一部分,用于提供额外的过滤条件、计算或数据源。在Oracle中,连接查询是通过使用JOIN子句将两个或多个表中的数据合并在一起,以获取满足特定条件的结果集。在Oracle数据库中,ROWID和ROWNUM都是用于对行进行标识和定位的伪列,它们在查询中的使用有一些不同之处。

麦当当的博客 3089

【OS命令注入】常见OS命令执行函数以及OS命令注入利用实例以及靶场实验—基于DVWA靶场

背景:程序员使用脚本语言(如PHP等)开发应用程序过程中,脚本语言开发十分快速、简洁、方便,但是也伴随着一些问题,比如速度慢、无法触及系统底层等。开发的应用时,特殊是企业级的一些应用需要去调用一些外部程序(系统命令或者exe等可执行文件),当应用需要调用一些外部程序时就会用到一些系统命令的函数。OS命令注入:当应用在调用这些系统命令函数时,如果将用户的输入作为系统命令的参数拼接到命令中,在没有过滤用户输入的情况下,就会造成命令执行漏洞。条件:漏洞危害:作用:该函数能够将字符串作为OS命令执行,自带输出功能。

m0_64378913的博客 2806

Frida+Objection保姆级教程:从环境搭建到实战Hook(含Wallbreaker插件使用)

本文提供了一份从零开始的Frida与Objection移动安全动态分析实战指南。详细讲解了Python环境配置、Frida-Server部署、Objection核心命令使用以及Wallbreaker插件安装与应用。通过实战案例演示如何Hook网络请求(如HttpURLConnection和OkHttp3),帮助安全研究人员快速掌握应用运行时行为分析与漏洞挖掘技能。

weixin_28318011的博客 103

OS下执行命令

无

luontheway的博客 296

车企自动泊车技术全解|纯视觉/多传感器融合双路线、端到端大模型革新 助力机械车位/无划线车位/极窄车位精准泊车落地

随着智能驾驶技术全面下沉,自动泊车已从高端车型专属配置,普及至十万级家用车型,成为车载核心刚需功能。但市面主流车企的泊车能力差距极大,核心差异源于传感器硬件架构、算法迭代逻辑、场景训练体系的全方位分化。传统规则式泊车算法仅适配标准划线车位,面对地库暗光、标线磨损、机械双层车位、极窄靠墙车位、无划线空地泊车等真实长尾场景极易失效。

getusushu的博客 106

[SVA]SystemVerilog Assertion Property开发技巧总结

SystemVerilog Assertion开发技巧总结 一、在property中可以使用if-else条件语句 如下面的例子,根据misc_phy_12g_rx的取值,选择不同的判断语句 property ck1_en_rose_chk(); @(posedge clk) disable iff(~rst_n) ad_pn_ck1en & (current_state !== ST_IDLE) |->...

元直的博客 5924

Python:执行命令行指令

python中,如何执行外部的命令行指令?

经年藏殊的博客 5264

【ComfyUI】Wan2.2 Animate 背景保留动作迁移视频生成

本文介绍了一个基于ComfyUI的高精度视频生成工作流"Wan2.2 Animate",该系统融合动作捕捉、图像拼接和LoRA加权等技术,能自动识别人脸并完成精准动作迁移,同时保持背景稳定。工作流采用模块化设计,包含输入提取、图像融合、模型加载等关键节点,核心模型Wan2.2-Animate-14B支持fp8精度与BlockSwap控制。流程分为图像输入、动作提取、多图合成等五个阶段,通过文本提示编码器和图像语义编码器实现语义驱动的动作生成,最终输出高质量视频,适用于虚拟形象驱动和

Mr数据杨 2268

python文件处理之os模块和shutil模块

python中os模块和shutil模块文件处理函数详细介绍

hutaotaotao的博客 1835

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Python】os和shutil模块

os 一、概念描述 Python: os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。 二、python路径操作 1、os.path.abspath():获取绝对路经 os.path.abspath(os.path.join(os.path.dirname(‘settings.py’),os.path.pardir)) os.path.pardir是父目录...

zhangyonghui007的博客 1032

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python 的 os 和 shutil 模块

os 模块提供了许多用于处理操作系统功能的函数,包括文件和目录操作、环境变量访问等。而 shutil 模块则构建在 os 模块的基础上,提供了更高级的文件操作功能,如复制、移动、删除文件以及归档和压缩等。本文将深入探讨这两个模块的使用方法,并通过示例代码和实用技巧,帮助大家更好地利用 Python 来管理文件系统。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 1598

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python 内置模块之os、sys、shutil

一、OS模块 用于提供系统级别的操作。 OS 目录和文件 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2...

pansaky的博客 647

python使用os和shutil模块进行文件创建,删除,移动,复制,重命名

把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接。例如,Windows使用 ‘\r\n’,Linux使用 ‘\n’ 而Mac使用 ‘\r’如果是window 则用’nt’表示,对于Linux/Unix用户,它是’posix’。: 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西。是一个属性,并没有参数,是可以自动获取系统路径的分隔符(

2401_88244350的博客 1740

python 中 os 模块和 shutil 模块

os 模块和 shutil 模块一、文件路径相关(os)1、当前脚本及路径2、遍历目录(1)os.listdir()(2)os.walk()3、路径及文件名的获取(1)os.path.split()(2)os.path.dirname()(3)os.path.basename()(4)os.path.splitext()(5)os.path.realpath() 和 os.path.abspath...

qq_36072270的博客 691

Python文件与目录-os模块和shutil模块详解

os模块和shutil模块是Python处理文件/目录的主要方式。os模块提供了一种使用操作系统相关功能的便捷方式,shutil模块是一种高级的文件/目录操作工具。

有一分热,发一分光。 1万+

python之os模块 +shutil 模块

对系统进行操作 os system() 在python中执行系统命令 popen() 执行系统命令返回对象,通过read方法读出字符串 (防止字符串乱码,使用popen进行操作) obj = os.popen(“ifconfig”) # 显示的时候,按照utf-8进行转换,默认windows是gbk的编码集 listdir() 获取指定文件夹中所有内容的名称列表 lst = os.listdir(".") # . 当前目录 lst = os.listdir("…") # … 上一级目录 getcwd

xuefei1121的博客 366

python的os模块实践和shutil模块实践

是一个非常重要的模块。os.rmdir(‘dirname’) 删除单级空目录,若目录不为空则无法删除,报错;os.system() 相当于linux系统在命令行shell中执行一条命令,在windows系统cmd中执行一条命令。2、os.listdir() 列出指定目录下的所有文件和目录,包括隐藏文件,并以列表方式打印。3、os.getcwd() 获取当前工作目录的绝对路径。os.pardir 获取当前目录的父目录字符串名:(’..’)1、os.system() 和 os.popen()

m0_60274784的博客 361

python中的os模块和shutil模块

python中的os和shutil语法

Dexter的博客 971

python os模块安装方法,Python详解os模块和shutil模块

文章目录文件的处理获取系统类型获取系统环境执行系统命令操作目录与文件文件和目录高级处理复制文件移动文件读取压缩及归档压缩文件解压文件小结(相关免费学习推荐:python视频教程)os模块和shutil模块是Python处理文件/目录的主要方式。os模块提供了一种使用操作系统相关功能的便捷方式,shutil模块是一种高级的文件/目录操作工具。文件的处理os模块提供了一些便捷功能来使用操作系统资源,比...

weixin_28685287的博客 2173

Python处理文件——os模块,shutil模块

os以及os.path的基础函数 函数 解释 举例 os.listdir() 列出文件 os.path.split() 将文件拆分成数组 In [33]: os.path.split(‘/root/python/test/1.txt’) Out[33]: (‘/root/python/test’, ‘1.txt’) os.path.j...

Mq_Go的博客 631

【Python】使用Python实现文件与目录操作:os和shutil模块详解!

Python的os模块提供了与操作系统交互的多种功能,支持跨平台操作文件和目录。而shutil模块是os模块的一个补充,提供了一些高级的文件和目录操作,如复制、移动和删除等。本文详细介绍了Python中os和shutil模块的基本用法,包括文件与目录的创建、删除、复制、移动、重命名、权限修改等操作。这两个模块提供了丰富的方法和灵活的操作,能够满足开发者在不同场景下的需求。通过熟练掌握这些模块,Python开发者可以高效、便捷地完成文件与目录的操作,提升代码质量和执行效率。

萧鼎的博客 775
上一篇: Python基础--面向对象应用
下一篇: 数据库连接池----DBUtils的使用
Jared  Chen
博客等级 码龄7年 559粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jared Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值