sys模块和shutil模块
一、sys模块
常用方法有:
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
# write by congcong import sys # 命令行参数List,第一个元素是程序本身路径
print(sys.argv) # ['D:/pycharm/Test1/Second_module/sys模块.py'] # 退出程序,正常退出时exit(0)
#sys.exit() # 获取python解释程序的版本信息
print(sys.version) # 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] # 最大的Int值
print(sys.maxsize) # # 返回模块的搜索路径,初始化使用PYTHONPATH环境变量的值
sys.path # 返回操作系统平台名称
print(sys.platform) # 标准输出
sys.stdout.write('plese:') # 标准输入
val = sys.stdin.readline()[:-1] # 获取最大递归层次
print(sys.getrecursionlimit()) # 设置最大递归层次
sys.setrecursionlimit(1000) # 获取解释器默认编码
print(sys.getdefaultencoding()) # 获取内存数据存到文件里的默认编码
print(sys.getfilesystemencoding())
二、shutil模块
shutil模块是针对文件的高级操作,包括文件、文件夹和压缩包处理。
主要方法如下:
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
# write by congcong
import shutil,os #高级文件操作 # shutil.copyfileobj()打开然后拷贝文件
f1 = open(file='before_revise.txt',mode='r',encoding='utf-8')
f2 = open(file='bf_re_copy.txt',mode='w',encoding='utf-8')
shutil.copyfileobj(f1,f2,length=16) # 直接拷贝文件
shutil.copyfile('before_revise.txt','before_revise.txt2') # shutil.copymode(src,dst) # 仅拷贝权限,内容,组,用户均不变 。src表示原文件,dst表示拷贝的文件
shutil.copymode('staff_table.new','before_revise.txt2') # shutil.copystat(src,dst) # 拷贝状态信息,包括:mode bits,atime,mtime,flags
shutil.copystat('staff_table.new','before_revise.txt2') # shutil.copy(src,dst) # 拷贝文件和权限,相当与 copyfile()+ copymode() # shutil.copy2(src,dst) # 拷贝文件和状态信息 # shutil.copytree() # 递归的去拷贝文件
# shutil.ignore_patterns() # 不拷贝指定文件
#shutil.copytree('my_module','module_new',ignore=shutil.ignore_patterns('__init__.py','ignore.py')) # shutil.rmtree()# 递归的删除文件,可以忽略某些错误 # shutil.move() # 递归的移动文件,相当于剪切
#shutil.move('module_new','pack') # 将 module_new中的文件全部剪切到 pack # shutil.make_archive(base_name,format,...)
'''
创建压缩包并返回文件路径
base_name:压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径
如:myfile => 保存至当前路径
如:/users/cc/myfile => 保存到/users/cc/下
format:压缩包种类,'zip','tar','bztar','gztar'
root_dir:要压缩的文件夹路径(默认当前目录)
owner:用户,默认当前用户
group:组,默认当前组
logger:用于记录日志,通常是logging.Logger对象 shutil对压缩包的处理是调用了 ZipFile 和 TarFile 两个模块来进行的
'''
shutil.make_archive('D:\pycharm\pack','zip','pack') import zipfile
# 压缩
# z = zipfile.ZipFile('pack2.zip','w')
# z.write('write.txt')
# z.write('迭代器.py')
# z.close()
# 解压
z = zipfile.ZipFile('pack2.zip','r')
z.extractall('p2') # extractall 可引出的,拔出的 解压后的压缩包名叫p2
z.close() import tarfile # 打包并不压缩
# 压缩
tar = tarfile.open('myfile.tar','w')
tar.add('D:\pycharm\Test1\Second_module\datetime模块.py',arcname='f_read.zip') # arcname 指定打包后的名字
tar.add('D:\pycharm\Test1\Second_module\my_module',arcname='my_mod.zip')
tar.close()
# 解压
tar = tarfile.open('myfile.tar','r')
tar.extractall('D:\pycharm')
tar.close()
sys模块和shutil模块的更多相关文章
- os模块和shutil模块
# coding=utf-8 import os path="D:\\test" ######### 目录结构如下 # test # / \ \ \ # test01 test02 ...
- python常用模块之shutil模块
python常用模块之shutil模块 shutil模块,高级的文件.文件夹.压缩包处理模块 1.shutil.copyfile(src,des[,length]):将文件内容拷贝到另一个文件 In ...
- [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明
转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...
- 元数据的概念以及相关的操作os模块、shutil模块
查看文件的元数据 stat [OPTION]… FILE… OPTION: -f 输出文件系统的状态,而非文件的状态 -t 显示简要格式的文件元数据信息 FILE:可同时查看多个文件的元数据信息,多个 ...
- Python入门-模块2(sys模块、shutil 模块)
sys模块: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 s ...
- python入门之sys模块、shutil模块
sys模块 import sys sys.version 返回python的版本 sys.argv 返回一个以脚本名,和传入的参数作为元素的列表 sys.path 返回一个以当前代码文件路径,pyth ...
- logging模块、shutil模块、subprocess模块、xml模块
logging模块 shutil模块 subprocess模块 xml模块 logging模块 函数式简单配置 import logging logging.debug('debug message' ...
- (汇总)os模块以及shutil模块对文件的操作
''' # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux ...
- Python进阶5---StringIO和BytesIO、路径操作、OS模块、shutil模块
StringIO StringIO操作 BytesIO BytesIO操作 file-like对象 路径操作 路径操作模块 3.4版本之前:os.path模块 3.4版本开始 建议使用pathlib模 ...
随机推荐
- BAT级别对照表
- 用 WEKA 进行数据挖掘——第二章: 回归
回归 回归是最为简单易用的一种技术,但可能也是最不强大(这二者总是相伴而来,很有趣吧).此模型可以简单到只有一个输入变量和一个输出变量(在 Excel 中称为 Scatter 图形,或 OpenOff ...
- Getting started with Android and Kotlin (译文)
原文链接 http://kotlinlang.org/docs/tutorials/kotlin-android.html 写在前面 Kotlin 是一个基于 JVM 的新的编程语言,由 JetBra ...
- ubuntu 设置plank开机自启之后关机键失效变为注销键
之前因为猎奇心,给我的ubuntu系统换了一个macUbuntu的桌面,但是之前用的dock是docky,昨日闲来无聊换成了plank,设置成然后就发现我的系统关不了机了,只能通过指令关机. 百度之后 ...
- (三)canvas绘制样式
beginPath() 对画线点的一个开始限制 moveTo() 画线的起点,只在开头使用 参数两个x轴,y轴 lineTo() 后续连线 两个参数x轴,y轴 stroke() 连线无填充 fill( ...
- nginx 转发 由于php语法错误 导致的 50x
server { listen 8008; root /root/php-test; index index.php index.html index.htm ...
- 【解题报告】[动态规划]RQNOJ PID2 / 开心的金明
原题地址:http://www.rqnoj.cn/problem/2 解题思路:背包问题. 状态转移方程:DP[i][j]=max(DP[i-v[j]][j-1]+p[j]*v[j],DP[i][j- ...
- bootstrap table 兼容ie8 -- refreshOptions
今天项目使用 bootstrap table 在ie8下发现 方法 refreshOptions 报错. 经过调试监控发现错误如下: 153 行 代码 Object.getOwnPropertyNam ...
- 手把手教你在Eclipse中使用CVS Branch功能
Brach 的作用: 开发新版本的人员就基于 main trunk 工作,而 fix bug 的人员就基于 branch 工作. 一旦在 branch上将 Release_1_0的 bug修复了,我们 ...
- Oracle查询多边形对象SDO_GEOMETRY并转换为java对象举例
最近实现了一个判断点是否与多边形交互的功能,这里的点是一个经纬度,多边形是一个区域,包含多个经纬度,最后看下这个点是否在这个区域内.就好比你打开百度地图,然后看你自己的位置(点)是不是在某个小区(多边 ...