1. 程式人生 > >sys模塊和shutil模塊

sys模塊和shutil模塊

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模塊