代碼備份機
阿新 • • 發佈:2018-07-08
os.path wal str raise 文件是否存在 返回 eba int 輸入參數 案例: 代碼備份機
1.打包備份
2. 自動命名
3.大抱歉進行文件篩選,值備份特定文件
4. 定時備份
編程思路:
1.項目:拆解
2.單功能:寫函數
3. 多功能:合並類
4 寫代碼:先寫框架,後完善
5.要點: 完成比完美更重要
# 第一步:根據功能設計函數
# 1.打包
def zip_all():
‘‘‘打包‘‘‘
pass
def auto_name():
‘‘‘自動命名‘‘‘
pass
def zip_all_by_name():
‘‘‘篩選文件‘‘‘
pass
# 第二步:完善函數輸入參數和返回值,並逐一測試 # 1.打包 import zipfile import os def zip_all(from_dir, target_name): ‘‘‘傳入目標目錄,打包的名稱這兩個參數‘‘‘ my_zip = zipfile.ZipFile(target_name,‘w‘) for root, dirs, files in os.walk(from_dir): for name in files: filename = os.path.join(root, name) my_zip.write(filename, compress_type=zipfile.ZIP_DEFLATED) my_zip.close() def auto_name(source_name): new_name = ‘1.zip‘ # 判斷文件是否存在,單純if只是判斷是否為空 # 還要進一步判斷 if source_name: # a-1.zip a-2.zip # split拆分 new_name = source_name.split(‘-‘)[0] + ‘-‘ + str(int(source_name.split(‘-‘)[1].split(‘.‘)[0]) + 1) + ‘.zip‘ return new_name base_dir = r‘C:\study‘ target_name = os.path.join(base_dir, auto_name(‘c-1.zip‘)) from_dir = os.path.join(base_dir, ‘jupyter‘) zip_all(from_dir, target_name) coop = zipfile.ZipFile(r‘C:\study\c-2.zip‘) coop.namelist # os.chdir(r‘C:\study‘) # coop.getinfo(‘c-2.zip‘)
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-4-67f8c6decc4e> in <module>() 29 coop.namelist 30 os.chdir(r‘C:\study‘) ---> 31 coop.getinfo(‘c-2.zip‘) c:\users\coop\miniconda3\envs\coop\lib\zipfile.py in getinfo(self, name) 1279 if info is None: 1280 raise KeyError( -> 1281 ‘There is no item named %r in the archive‘ % name) 1282 1283 return info KeyError: "There is no item named ‘c-2.zip‘ in the archive"
os.getcwd()
‘C:\\study‘
代碼備份機