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 调用Java实例详解
Jun 02 Python
python人民币小写转大写辅助工具
Jun 20 Python
Python3中详解fabfile的编写
Jun 24 Python
Python基础学习之函数方法实例详解
Jun 18 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
python获取响应某个字段值的3种实现方法
Apr 30 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
详解python内置模块urllib
Sep 09 Python
详解Python yaml模块
Sep 23 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
Python实现京东抢秒杀功能
Jan 25 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生成自己的LOG文件
2006/10/09 PHP
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
python的dataframe和matrix的互换方法
2018/04/11 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
python实现五子棋程序
2020/04/24 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
业务员岗位职责
2013/11/16 职场文书
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
30年同学聚会感言
2014/01/30 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
道德模范事迹材料
2014/12/20 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
道歉短信大全
2015/05/12 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
人身损害赔偿协议书
2016/03/22 职场文书