sys模块和shutil模块
2024-09-04 07:45:33
一、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()
最新文章
- Sqoop2中传入配置文件中url之【坑】
- jqgrid 中的事件
- PHP学习总结(一)
- GitHub 基本常用知识解答2
- albert1017 Linux下压缩某个文件夹(文件夹打包)
- css3属性 transition transform
- Button 自定义(一)-shape
- CSS边框属性一---border-radius
- (转载)MySql按日期进行统计(前一天、本周、某一天)
- hdu2660 Accepted Necklace (DFS)
- C# 使用 Code Snippet 简化 Coding
- C++STL中map容器的说明和使用技巧(杂谈)
- Adobe Fireworks CS6 Mac破解版
- python替换脚本
- 利用Java API生成50到100之间的随机数
- CSScript 使用纪要
- Linux下搭建gtk+2.0开发环境
- Jquery 单击_双击_鼠标经过_鼠标离开_背景样式变化
- mosquitto 配置文件解说
- python分布式爬虫打造搜索引擎--------scrapy实现