码迷,mamicode.com
首页 > 其他好文 > 详细

sys模块和shutil模块

时间:2018-02-09 22:19:44      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:second   group   解释器   recursion   date   对象   ros   span   包名   

一、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) # 9223372036854775807

# 返回模块的搜索路径,初始化使用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模块

标签:second   group   解释器   recursion   date   对象   ros   span   包名   

原文地址:https://www.cnblogs.com/schut/p/8436729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!