0

0

Python详解os模块和shutil模块

coldplay.xixi

coldplay.xixi

发布时间:2021-03-03 11:01:46

|

3427人浏览过

|

来源于CSDN

转载

Python详解os模块和shutil模块

文章目录

  • 文件的处理
    • 获取系统类型
    • 获取系统环境
    • 执行系统命令
    • 操作目录与文件
  • 文件和目录高级处理
    • 复制文件
    • 移动文件
    • 读取压缩及归档压缩文件
    • 解压文件
  • 小结

(相关免费学习推荐:python视频教程

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

文件的处理

立即学习Python免费学习笔记(深入)”;

os模块提供了一些便捷功能来使用操作系统资源,比如读取资源目录下的文件、在命令行查看某路径下文件的所有内容等。

获取系统类型


对代码进行兼容性开发以适应不同操作系统时通过操作系统类型进行判断就可以轻松解决。

import osimport sysprint(os.name)  # 返回nt代表Windows,posix代表Linuxprint(sys.platform)  # 更详细信息

在这里插入图片描述

获取系统环境


对环境变量进行相关设置时,常常会调用模块environ模块。os.environ是以字典的形式返回系统环境变量,要获取具体的属性值,可以用索引,也可以用方法getenv()

import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))

在这里插入图片描述

执行系统命令


使用os模块system()方法可以执行shell命令,正常执行会返回0。使用格式是os.system("bash command")

在非控制台编写时,system()只会调用系统命令而不会执行,执行结果可通过popen()函数返回file对象进行读取获得。

import os
os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()

在这里插入图片描述

操作目录与文件


使用os模块操作目录和文件时Python开发最为常见的功能之一。

方法 说明 示例
os.getcwd() 获取当前目录路径 @@##@@
os.chdir('目标路径') 更改当前脚本目录 @@##@@
os.listdir(path) 列举目录下所有文件 @@##@@
os.mkdir(path) 创建单个目录 @@##@@
os.makedirs(path) 创建多级目录
os.rmdir(path) 删除单级空目录
os.removedirs(path) 删除多级目录
os.rename("文件或目录名",”目标名“) 重命名目录或文件 @@##@@
os.path.abspath() 获取绝对路径 @@##@@
os.path.split(path) 将路径分解为(文件夹,文件名)
若路径字符串最后一个字符是\,则只有文件夹部分有值;
若路径字符串中均无\,则只有文件名部分有值;
若路径字符串有\且不再最后,则文件夹文件名都有值。
@@##@@
os.path.join(path1,path2) 将路径组合
os.path.dirname(path) 获取path中的文件夹部分 @@##@@
os.path.basename(path) 获取path中的文件名
os.path.exists(path) 判断文件或文件夹是否存在 @@##@@
os.path.isfile(path) 判断路径是否是一个文件 @@##@@
os.path.isdir(path) 判断路径是否为一个目录 @@##@@
os.path.getsize(path) 获取文件或文件夹大小 @@##@@
os.path.getctime(path) 获取文件或文件夹创建时间 @@##@@
os.path.getatime(path) 获取文件或文件夹最后访问时间 @@##@@
os.path.getmtime(path) 获取文件或文件夹最后修改时间 @@##@@
os.sep() 路径分割符 @@##@@
os.extsep() 文件名和后缀之间的分割符
os.pathsep() 路径分隔符
os.linesep() 换行符号

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

文件和目录高级处理

相比os模块,shutil模块用于文件和目录的高级处理,提供了支持文件赋值、移动、删除、压缩和解压等功能。

复制文件

佳蓝智能应答系统
佳蓝智能应答系统

类似智能机器人程序,以聊天对话框的界面显示,通过输入问题、或点击交谈记录中的超链接进行查询,从而获取访客需要了解的资料等信息。系统自动保留用户访问信息及操作记录。后台有详细的设置和查询模块。适用领域:无人职守的客服系统自助问答系统智能机器人开发文档、资源管理系统……基本功能:设置对话界面的显示参数设置各类展示广告根据来访次数显示不同的欢迎词整合其他程序。

下载

shutil模块的主要作用是赋值文件,大概有以下七种实现:

  1. shutil.copyfileobj(file1,file2)覆盖复制
    将file1的内容覆盖file2,file1、file2表示打开的文件对象。

  2. shutil.copyfile(file1,file2)覆盖复制
    也是覆盖,但是无须打开文件,直接用文件名进行覆盖(其源码还是调用的copyfileobj)。

  3. shutil.copymode(file1,file2)权限复制
    仅复制文件权限,不更改文件内容、组和用户,无返回对象。

  4. shutil.copystart(file1,file2)状态复制
    复制文件的所有状态信息,包括权限、组、用户和时间等,无返回对象。

  5. shutil.copy(file1,file2)内容和权限复制
    复制文件的内容和权限,相当于先执行了copyfile再执行了copysmode。

  6. shutil.copy2(file1,file2)内容和权限复制
    复制文件的内容及所有状态信息,相当于先执行了copyfile再执行了copystart。

  7. shutil.copytree()递归复制
    递归地复制文件内容及状态信息

移动文件


使用函数shutil.move()函数可以递归地移动文件或重命名,并返回目标,若目标是现有目录则src再当前目录移动;若目标已经存在且不是目录,则可能会被覆盖。
Python详解os模块和shutil模块
Python详解os模块和shutil模块

读取压缩及归档压缩文件


使用函数shutil.make_archive()创建归档文件,并返回归档后的名称。
语法如下:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])

  • base_name为需要创建的文件名,包括路径
  • format表示压缩格式,可选zip、tar或bztar等
  • root_dir为归档的目录
import shutil
path_1 = r'D:\PycharmProjects\Hello'path_2 = r'D:\PycharmProjects\Hello\shutil-test'new_path = shutil.make_archive(path_2,'zip',path_1)print(new_path)

Python详解os模块和shutil模块

解压文件


使用函数shutil.unpack_archive(filename[,extract_dir[,format]])分析拆档。

  • filename是归档的完整路径
  • extract_dir是解压归档的目标目录名称
  • format是解压文件的格式
import shutilimport os
shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\\testdir')print(os.listdir('D:\\testdir'))

Python详解os模块和shutil模块

小结


需要注意的是不同的操作系统中,路径分隔符不一样,在文件处理时需要考虑。也可以使用os.sep()来替代文件分隔符,因为操作系统而造成的程序异常。此外处理文件时往往需要注意文件权限,还有注意文件和文件夹的区别,使用递归等。

Python系列博客持续更新中

大量免费学习推荐,敬请访问python教程(视频)

Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块Python详解os模块和shutil模块在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

755

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

759

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

707

2023.08.11

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

20

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.9万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号