最近陸續把日常工作中每天重複的勞動,比如比對,校驗,簡單的工作,都實現了一鍵化,為此省卻了不少時間
此為磨刀不誤砍柴工
越來越懶,不解釋,直接上**
# coding:utf-8
import zipfile
import os
import shutil
import pdb
def create_zip(src, dst,flag=true):
"""對指定檔案下的檔案或子資料夾進行壓縮(空目錄也會被壓縮)
:param src: 被壓縮的資料夾或者檔案
:param dst: 壓縮檔案儲存路徑+***x.zip
:param flag: true,打包時帶上目錄,false,打包時不帶上當前目錄
:return: 無
"""zip = zipfile.zipfile(dst, "w", zipfile.zip_deflated)
if os.path.isdir(src): # 如果src是乙個目錄
if flag:#true,打包時帶上目錄
src_dir = os.path.split(src)[-1]
else:#false,打包時不帶上當前目錄
src_dir = ''
for root, dirs, filenames in os.walk(src):
# zip中的路徑是相對路徑
relative_path = root.replace(src, '')
zip_path = src_dir + relative_path
for filename in filenames:
root_with_filename = os.path.join(root, filename)
child_path_with_filename = os.path.join(zip_path, filename)
zip.write(root_with_filename, child_path_with_filename)
for dir in dirs:#如果目錄下沒有檔案也要把目錄也壓縮進去
abs_path = os.path.join(root,dir)
zip_path = os.path.join(src_dir,dir)
zip.write(abs_path,zip_path)
if os.path.isfile(src): # 如果src是乙個檔案
filename = os.path.split(src)[-1]
zip.write(src, filename)
zip.setpassword('123') #設定加密
zip.close()
def read_zip(dst):
"""讀取zip包中每個檔案的內容
:param dst: zip檔案
:return: 無
"""if zipfile.is_zipfile(dst):
num = 0
with zipfile.zipfile(dst,mode='r') as z:
for file in z.namelist():
print(file,os.path.isfile(file))
if os.path.isfile(file):
num += 1
with z.open(file) as fp:
print(fp.read())
if num == 0:
print('zip中檔案為空')
else:
print('這不是zip檔案')
def add_zip(dst,zip_path, file):
"""向已存在的zip包中指定目錄新增檔案
:param dst: zip檔案
:param zip_path: zip中路徑,如果zip_path不存在,則會自動建立對應的目錄
:param file: 要新增的檔案
:return: 無
"""if zipfile.is_zipfile(dst):
zip = zipfile.zipfile(dst, "a", zipfile.zip_deflated)
filename = os.path.split(file)[-1]
dist = os.path.join(zip_path, filename)
if dist.replace('\\','/') in zip.namelist():
print('存在同名檔案')
else:
zip.write(file, dist)
zip.close()
else:
print('這不是zip檔案')
def del_zip(dst,filename):
"""刪除zip中指定的檔案
:param dst: zip檔案
:param filename: 要刪除的資料夾名,不帶目錄
:return: 無
"""if zipfile.is_zipfile(dst):
zip_old = zipfile.zipfile(dst, "r", zipfile.zip_deflated)
old_zip_name = os.path.split(dst)[-1]
new_dst = os.path.split(dst)[0]+r'\new_'+old_zip_name
zip_new = zipfile.zipfile(new_dst, "a", zipfile.zip_deflated)
name = zip_old.namelist()[:]
for name in list(set(name)):
sname = os.path.split(name)[-1]
if filename != sname:
buffer = zip_old.read(name)
zip_new.writestr(name,buffer)
zip_new.close()
zip_old.close()
shutil.move(new_dst,dst)
else:
print('這不是zip檔案')
def extract_zip(dst,to_path=none,password=none):
"""解壓檔案到指定目錄
:param dst: zip檔案
:param to_path: 要解壓的目錄
:param password: 解壓密碼
:return: 無
"""with zipfile.zipfile(dst) as z:
z.extractall(path=to_path,pwd=password.encode('utf8'))
pass
日常工作積累
一 如果hive中的表儲存為parquet的格式,假如我們要改字段的名字,那麼改完字段後,該字段的資料全變為null 二 kill掉正在執行的hive任務 三 字母 漢字 數字所佔位元組 乙個字母 1個位元組 乙個數字 1個位元組 乙個漢字 2個位元組 四 算法官網 五 我們在做hive的表的時候,...
DBA日常工作
dba 職責及日常工作職責 1.安裝和公升級資料庫伺服器,以及應用程式工具構建和配置網路環境.2.熟悉資料庫系統的儲存結構 未來的儲存需求,制訂資料庫的儲存方案.3.根據開發人員設計的應用系統需求建立資料庫儲存結構.4.根據開發人員設計的應用系統需求建立資料庫物件 5.根據開發人員的反饋資訊,在必要...
SAP HANA DBA日常工作
sap hana dba日常工作手冊 一 日常性工作 1.系統執行環境的監控。檢視磁碟空間 方法1 通過sap hana studio administration editor volumes tab去監控磁碟使用。這種方式可以看到詳細的磁碟使用情況,可以檢視到每個服務占用了多少磁碟空間等等。方法...