sys模塊和shutil模塊
阿新 • • 發佈:2018-02-09
ros python 第一個元素 當前 狀態信息 cname efault 方法 ive
一、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模塊