標籤:with open write std 後台 odi read os.path add path
#!/usr/bin/env python#coding:utf-8import osimport reimport shutil as copycopy_web_service = ‘/data/web/s1‘dest_web_service = ‘/data/web/s‘all_web_service = ‘/data/web/‘crontab_file = ‘/data/update/crontab.txt‘openservice_num = ‘/data/update/open_num.txt‘#擷取開服數字並拷貝一個新目錄出來def copy_newservice(): global open_num all_service = set() alredy_open_service = set() if not os.path.exists(openservice_num): print(‘%s開服數檔案不存在,請檢查‘ % openservice_num) exit(1) with open(‘/data/update/open_num.txt‘,‘r‘) as f: for file in f.readlines(): num = file.strip() for nums in range(1,int(num)+1): all_service.add(nums) for service in os.listdir(all_web_service): if re.match(‘s\d+‘,service): alredy_open_service.add(int(service[1:])) cha_num = alredy_open_service^all_service open_num = list(cha_num) if not os.path.exists(copy_web_service): print(‘%s目錄不存在,指令碼退出‘ % copy_web_service) exit(1) else: for nums in open_num: dest_dir = dest_web_service + str(nums) if not os.path.exists(dest_dir): copy.copytree(copy_web_service,dest_dir)#修改a.py指令碼區服名字三處def modify_script(): script = ‘‘ modify_list = [‘s1‘,‘s1‘,‘s1‘] for nums in open_num: new = ‘s‘ + str(nums) for name in modify_list: dest_dir = dest_web_service + str(nums) if not os.path.exists(dest_dir+‘/a.py‘): print(‘%s指令碼不存在,指令碼退出‘ % (dest_dir+‘/a.py‘)) exit(1) with open(dest_dir+‘/a.py‘) as f: for line in f.readlines(): if line.find(str(name)): line = re.sub(name,new,line) script += line else: script += line with open(dest_dir+‘/a.py‘,‘w‘) as f: f.write(script) script = ‘‘#清空do.txt和insert.log檔案def clear_file(): kong = ‘‘ file_list = [‘/insert.log‘,‘/do.txt‘] for nums in open_num: for files in file_list: dest_dir = dest_web_service + str(nums) if not os.path.exists(dest_dir+files): print(‘%s檔案不存在,指令碼退出‘ % (dest_dir+files)) else: with open(dest_dir+files,‘w‘) as f: f.write(kong)#建立定時任務def crontab(): if not os.path.exists(crontab_file): print(‘%s檔案不存在,請檢查‘ % crontab_file) for nums in open_num: task = ‘*/5 * * * * python /data/web/s‘ + str(nums) + ‘/a.py >> /data/web/s‘ + str(nums) + ‘/insert.log\n‘ with open(crontab_file,‘a‘) as f: f.write(task) os.system(‘crontab %s‘ % crontab_file)copy_newservice()modify_script()clear_file()crontab()
python編寫開發更新資料後台指令碼