Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析


Posted in Python onApril 27, 2019

本文实例讲述了Python3.5内置模块之os模块、sys模块、shutil模块用法。分享给大家供大家参考,具体如下:

1、os模块:提供对操作系统进行调用的接口

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

import os
print(os.getcwd())  #获取当前的操作目录,即当前Python脚本工作的目录路径
#os.chdir("F:\\PythonCode\\day5\\test")  #改变当前脚本工作目录,相当于shell下的cd
os.chdir(r"F:\PythonCode\day5\test")   #与上面一句等价(推荐使用)
print(os.getcwd())
print(os.curdir) #返回当前目录 '.'
print(os.pardir) #获取当前目录的父目录字符串名 '..'

os.makedirs(r"F:\a\b\c")  #生成多层递归目录
#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.removedirs(r"F:\a\b\c")  #清理空文件夹

os.mkdir(r"F:\PythonCode\day5\t")  #生成单级目录,相当于shell中mkdir filename
os.rmdir(r"F:\PythonCode\day5\t")  #删除单级空目录,若目录不为空,无法删除或报错;相当于shell中rmdir filename

print(os.listdir(r"F:\PythonCode\day5\test"))  #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove(r"F:\PythonCode\day5\test\1.py")  #删除一个文件
os.rename(r"F:\PythonCode\day5\test\1.py",r"F:\PythonCode\day5\test\2.py")  #重命名文件/目录
print(os.stat(r"F:\PythonCode\day5\test"))   #获取文件/目录信息

print(os.sep)   #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
print(os.linesep) #输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
print(os.pathsep) #输出用于分割文件路径的字符串,win下为";",Linux下为":"
print(os.environ) #查看系统的环境变量
print(os.name)   #输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
print(os.system("dir")) #运行shell命令,直接显示
print(os.path.abspath(r"F:\PythonCode\day5"))  #返回path规范化的绝对路径
print(os.path.split(r"F:\PythonCode\day5\test\1.py")) #将path分割成目录和文件名二元组返回
print(os.path.dirname(r"F:\PythonCode\day5"))  #返回path的目录。其实就是os.path.split(path)的第一个元素
print(os.path.basename(r"F:\PythonCode\day5"))  #返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。
print(os.path.exists(r"F:\PythonCode\day5"))  #如果path存在,返回True;如果path不存在,返回False
print(os.path.isabs(r"F:\PythonCode\day5"))  #如果path是绝对路径,返回True
print(os.path.isfile(r"F:\PythonCode\day5\p_test.py"))  #如果path是一个存在的文件,返回True,否则返回False
print(os.path.isdir(r"F:\PythonCode\day5"))  #如果path是一个存在的目录,则返回True。否则返回False
print(os.path.join(r"F:",r"\PythonCode",r"\day5",r"\day"))  #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
print(os.path.getatime(r"F:\PythonCode\day5"))  #返回path所指向的文件或者目录的最后存取时间
print(os.path.getmtime(r"F:\PythonCode\day5"))  #返回path所指向的文件或者目录的最后修改时间

运行结果:

F:\PythonCode\day5
F:\PythonCode\day5\test
.
..
['2.py', 'module_test.py', 'test.py']
os.stat_result(st_mode=16895, st_ino=8162774324625191, st_dev=104211, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1506609480, st_mtime=1506609480, st_ctime=1506579769)
\


;
environ({'PROCESSOR_LEVEL': '6', 'WINDOWS_TRACING_LOGFILE': 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log', 'PROCESSOR_ARCHITECTURE': 'x86')
nt
 ������ F �еľ��� ѧϰ��
 �������� 0001-9713

 F:\PythonCode\day5\test ��Ŀ¼

2017/09/28 22:38  <DIR>     .
2017/09/28 22:38  <DIR>     ..
2017/09/28 22:37        69 2.py
2017/09/28 14:31        121 module_test.py
2017/09/28 14:35        237 test.py
        3 ���ļ�      427 �ֽ�
        2 ��Ŀ¼ 14,051,733,504 �����ֽ�
0
F:\PythonCode\day5
('F:\\PythonCode\\day5\\test', '1.py')
F:\PythonCode
day5
True
True
True
True
F:\day
1506656912.210523
1506656912.210523

2、sys模块

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

import sys
print(sys.argv)   #命令行参数List,第一个元素是程序本身路径
print(sys.version) #获取Python解释程序的版本信息
print(sys.path)   #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
print(sys.platform) #返回操作系统平台名称
sys.stdout.write('please:')  #标准输出,写入字符串输出到屏幕
val = sys.stdin.readline()[:-1]  #标准输入
print(val)
sys.exit(0)     #退出程序,正常退出时exit(0)

运行结果:

['F:/PythonCode/day5/sys_module.py']
3.5.2 |Anaconda 4.2.0 (32-bit)| (default, Jul 5 2016, 11:45:57) [MSC v.1900 32 bit (Intel)]
['F:\\PythonCode\\day5', 'F:\\PythonCode', 'C:\\Users\\Administrator\\Anaconda3\\python35.zip', 'C:\\Users\\Administrator\\Anaconda3\\DLLs', 'C:\\Users\\Administrator\\Anaconda3\\lib', 'C:\\Users\\Administrator\\Anaconda3', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\Sphinx-1.4.6-py3.5.egg', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg']
win32
hello
please:hello

3、shutil模块:高级的文件、文件夹、压缩包处理模块

(1)将文件内容拷贝到另一个文件中,可以部分内容——shutil.copyfileobj(fsrc, fdst[, length])

f1 = open("p_test.py",encoding="utf-8")
f2 = open("p1.py","w",encoding="utf-8")
#将文件p_test.py内容拷贝到另一个文件p1.py中,可以部分内容
shutil.copyfileobj(f1,f2)

运行结果:

Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

(2)拷贝文件——shutil.copyfile(src, dst)

import shutil
shutil.copyfile("p1.py","p2.py")  #拷贝文件

运行结果:

Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

(3)仅拷贝权限(内容、组、用户均不变)——shutil.copymode(src, dst)

(4)拷贝状态的信息,包括:mode bits, atime, mtime, flags——shutil.copystat(src, dst)

(5)拷贝文件和权限——shutil.copy(src, dst)

(6)拷贝文件和状态信息——shutil.copy2(src, dst)

(7)递归的去拷贝文件:

shutil.ignore_patterns(*patterns)
shutil.copytree(src, dst, symlinks=False, ignore=None)
import shutil
shutil.copytree("test","test1")  #递归的去拷贝文件

运行结果:

Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
(8)递归的去删除文件——shutil.rmtree(path[, ignore_errors[, onerror]])

(9)递归的去移动文件——shutil.move(src, dst)

(10)创建压缩包并返回文件路径,例如:zip、tar——shutil.make_archive(base_name, format,...)

  • base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
    如:www                        =>保存至当前路径
    如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
  • format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
  • root_dir: 要压缩的文件夹路径(默认当前目录)
  • owner: 用户,默认当前用户
  • group: 组,默认当前组
  • logger: 用于记录日志,通常是logging.Logger对象
import shutil
shutil.make_archive("shutil_archive_test","zip","F:\PythonCode\day5")

运行结果: Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
总结:shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的

import zipfile
z = zipfile.ZipFile("day5.zip","w")
z.write("p1.py")
print("===========")
z.write("p2.py")
z.close()

运行结果:

===========

Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
Python中的__new__与__init__魔术方法理解笔记
Nov 08 Python
python类继承与子类实例初始化用法分析
Apr 17 Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python有序字典简单实现方法示例
Sep 28 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
Python3进制之间的转换代码实例
Aug 24 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
python之基数排序的实现
Jul 26 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 #Python
python爬取基于m3u8协议的ts文件并合并
Apr 26 #Python
python游戏开发之视频转彩色字符动画
Apr 26 #Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 #Python
python使用参数对嵌套字典进行取值的方法
Apr 26 #Python
python将视频转换为全字符视频
Apr 26 #Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 #Python
You might like
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
vue操作dom元素的3种方法示例
2020/09/20 Javascript
Python3.2模拟实现webqq登录
2016/02/15 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python模块之time模块(实例讲解)
2017/09/13 Python
机器学习python实战之决策树
2017/11/01 Python
python enumerate函数的使用方法总结
2017/11/15 Python
python实现kMeans算法
2017/12/21 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
django 将model转换为字典的方法示例
2018/10/16 Python
python 项目目录结构设置
2020/02/14 Python
python名片管理系统开发
2020/06/18 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
银行开户授权委托书格式
2014/10/10 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2014年护理部工作总结
2014/11/14 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
Redis实现订单过期删除的方法步骤
2022/06/05 Redis