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基础教程之字典操作详解
Mar 25 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
python 中if else 语句的作用及示例代码
Mar 05 Python
Python拼接字符串的7种方法总结
Nov 01 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
详解Django配置JWT认证方式
May 09 Python
基于Python的EasyGUI学习实践
May 07 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
php图片添加水印例子
2016/07/20 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
python selenium 获取接口数据的实现
2020/12/07 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
二手书店创业计划书
2014/01/16 职场文书
大三学习计划书范文
2014/05/02 职场文书
慰问信模板
2015/02/14 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
学校就业保障协议书
2019/06/24 职场文书