日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 寫一個文件分發小程序

瀏覽:57日期:2022-07-03 10:14:31

一、概述

該小程序實現從源端到目標端的文件一鍵拷貝,源端和目標段都在一臺電腦上面,只是目錄不同而已

二、參數文件說明

1. settings.txt的說明a. 通過配置settings.txt,填源端和目標端路徑,如果用反斜杠結尾表示填的是文件夾,如果不是反斜杠結尾則代表填的是文件b. 如果是按日期自動生成的文件夾,則用{YYYYMMMDD}或{MMDD}等替代c. 文件支持*匹配任意名字d. 在no_create_ok_file組中,表示不生成ok標識,在create_ok_file組中表示生成ok標識e. 如果settings.txt填寫不正確,運行這個小程序就會生成一個error.log,但是不影響后面的拷貝

舉例D:test3{YYYYMMDD} = E:test4{YYYYMMDD},如果在執行程序的時候不填日期,直接回車,這個{YYYYMMDD}就自動替換為當天的日期,如果填了日期(如20191115),那{YYYYMMDD}就自動替換為20191115D:test1fa* = E:test2,這個就表示把D:test1目錄下的以fa開頭的文件全部拷貝到E:test2中去

2. okfile.txt的說明okfile.txt填的源端的ok文件,有些系統在生成文件的時候,會生成一個ok文件,表示系統文件已經生成完成。okfile.txt就是來校驗這些文件是否存在,如果不存在,那么運行這個小程序的時候就會生成一個warn.log,但是不影響實際的拷貝。

三、程序說明

由于業務人員不懂python,也沒有裝開發環境,因此通過將python文件打包成一個exe的形式,方便他們操作。

pip isntall PyInstaller # 安裝PyInstaller包pyinstaller -F filetran.py --icon=rocket.ico # 將.py文件和.ico文件放在一起,在dist目錄下面生成exe文件

由于我的py文件需要讀這兩個配置文件,因此還需要將.exe文件和這兩個配置文件放在同一個目錄下面,就可以到任意一臺windows下面執行了

四、附上代碼filetran.py

# autor: yangbao# date: 2019-10-16import osimport timeimport datetimeimport reimport shutilimport configparserdef variable_replace(variable): '''路徑替換''' global customer_input local_customer_input = customer_input if local_customer_input: curr_year = local_customer_input[0:4] curr_month = local_customer_input[4:6] curr_day = local_customer_input[6:8] else: curr_year = str(time.strftime(’%Y’)) curr_month = str(time.strftime(’%m’)) curr_day = str(time.strftime(’%d’)) if re.search(’{YYYYMMDD}’, variable): variable = variable.replace(’{YYYYMMDD}’, curr_year+curr_month+curr_day) if re.search(’{YYYYMM}’, variable): variable = variable.replace(’{YYYYMM}’, curr_year+curr_month) if re.search(’{MMDD}’, variable): variable = variable.replace(’{MMDD}’, curr_month+curr_day) if re.search(’{YYYY}’, variable): variable = variable.replace(’{YYYY}’, curr_year) if re.search(’{MM}’, variable): variable = variable.replace(’{MM}’, curr_month) if re.search(’{DD}’, variable): variable = variable.replace(’{DD}’, curr_day) return variabledef source_to_target(): '''讀取settings.txt文件,將源端和目標端映射關系對上''' source_to_target_dict = {} with open(’settings.txt’, ’r’, encoding=’utf-8-sig’) as f: for line in f.readlines(): # 排除注釋和空行和格式不正確的 if not line.startswith(’#’) and line.strip() != ’’ and re.search(’=’, line): source = line.split(’=’)[0].strip() target = line.split(’=’)[1].strip() source_to_target_dict[source] = target return source_to_target_dictdef create_ok_file(source): '''讀取配置文件''' cf = configparser.ConfigParser(delimiters=(’=’)) cf.read('settings.txt', encoding=’utf-8-sig’) options = cf.options('create_ok_file') for i in options: if source.lower() == i.lower().strip(): return True return Falsedef filecopy(): '''文件拷貝''' # 得到映射表 source_to_target_dict = source_to_target() # 讀取每一個目標路徑 for ori_source, ori_target in source_to_target_dict.items(): source = variable_replace(ori_source) target = variable_replace(ori_target) # 如果源端填的是文件夾 if source.endswith(os.sep): if os.path.exists(source): file_list = os.listdir(source) for filename in file_list: # 如果目標路徑不存在,就創建 if not os.path.exists(target): os.makedirs(target) source_file = source + filename target_file = target + filename print(’[’, time.strftime(’%Y-%m-%d %H:%M:%S’), ’] ’, source_file, ’ ----> ’, target_file, ’ 開始拷貝’, sep=’’) try: shutil.copyfile(source_file, target_file) if create_ok_file(ori_source): ok_file = target_file + ’.ok’ fp = open(ok_file, ’w’) fp.close() except Exception as e: with open(error_log_name, ’a+’, encoding=’utf-8-sig’) as f: f.write(str(e)) f.write(’n’) break # print(’[’, time.strftime(’%Y-%m-%d %H:%M:%S’), ’] ’, source_file, ’ ----> ’, target_file, ’ 拷貝完成’, sep=’’) # 如果源端填的是文件 else: source_dir = source[0:source.rfind(os.sep)+1] # 得到該文件所在的文件夾 file_name_pattern = source[source.rfind(os.sep)+1:] # 得到該文件的文件樣式 if os.path.exists(source_dir): file_list = os.listdir(source_dir) for filename in file_list: # 只有匹配上的才拷貝 if re.match(file_name_pattern, filename): # 如果目標路徑不存在,就創建 if not os.path.exists(target): os.makedirs(target) source_file = source_dir + filename target_file = target + filename print(’[’, time.strftime(’%Y-%m-%d %H:%M:%S’), ’] ’, source_file, ’ ----> ’, target_file, ’ 開始拷貝’, sep=’’) try: shutil.copyfile(source_file, target_file) if create_ok_file(ori_source): ok_file = target_file + ’.ok’ fp = open(ok_file, ’w’) fp.close() except Exception as e: with open(error_log_name, ’a+’, encoding=’utf-8-sig’) as f: f.write(str(e)) f.write(’n’) break # print(’[’, time.strftime(’%Y-%m-%d %H:%M:%S’), ’] ’, source_file, ’ ----> ’, target_file, ’ 拷貝完成’, sep=’’)def warnlog(): '''警告日志''' with open(’okfile.txt’, ’r’, encoding=’utf-8’) as f: for line in f.readlines(): # 排除注釋和空行和格式不正確的 if not line.startswith(’#’) and line.strip() != ’’: okfile = variable_replace(line.strip()) if not os.path.isfile(okfile): with open(warn_log_name, ’a+’, encoding=’utf-8-sig’) as t: t.write(okfile + ’ 該文件不存在!’) t.write(’n’)if __name__ == ’__main__’: # 主程序 customer_input = input(’請輸入需要拷貝的8位指定日期,如20191114,如果不輸入,默認拷貝當天n’) # 如果沒輸入,或者輸入格式正確,就拷貝 if re.match(’d{8}’,customer_input) or not customer_input: begin_time = datetime.datetime.now() error_log_name = ’error_’ + str(time.strftime(’%Y%m%d_%H%M%S’)) + ’_.log’ warn_log_name = ’warn_’ + str(time.strftime(’%Y%m%d_%H%M%S’)) + ’_.log’ print(’[’, time.strftime(’%Y-%m-%d %H:%M:%S’), ’] ’, ’文件開始拷貝...’, sep=’’) print(’-’ * 50) filecopy() warnlog() end_time = datetime.datetime.now() cost_time = (end_time - begin_time).seconds print(’-’ * 50) print(’[’, time.strftime(’%Y-%m-%d %H:%M:%S’), ’] ’, ’文件拷貝結束,總耗時’, cost_time, ’秒’, sep=’’) # 如果輸入格式不正確 elif not re.match(’d{8}’, customer_input): print(’請輸入正確的格式’) input(’按回車鍵退出’)

settings.txt

# 拷貝路徑設置# 源端路徑不存在就不復制,目標端路徑不存在會自動創建目錄# 說明事項:# 1. 格式為源端路徑 = 目標路徑# 2. 文件夾后面以反斜杠結束# 3. 如果是變量,則以大括號闊起來,如今天是20191012, {YYYYMMDD}會替換為20191012,則使用{MMDD}替換為1012,{DD}替換為12# 4. YYYY MM DD都填大寫# 以下是示例# 拷貝整個文件夾 --> P:信息技術部YangBaooa = E:test2# 拷貝指定名稱,*表示匹配任意字符 --> D:test3{YYYYMMDD}ab* = E:test4{YYYYMMDD}[no_create_ok_file]# 將不需要生成ok標識的路徑或文件填在這下面D:test3{YYYYMMDD} = E:test4{YYYYMMDD}[create_ok_file]# 將需要生成ok標識的路徑或文件填在這下面D:test1 = E:test2

okfile.txt

# ok文件設置設置# 以下是示例# {YYYYMMDD}會替換成指定日期,D:test3{YYYYMMDD}ab.txt# D:test3{YYYYMMDD}sdfg

filetran.exe

https://pan.baidu.com/s/1vxO6UycDtz5nN4DpmjLN5w 提取碼:bgdu

注意不管是使用python去執行filetran.py,還是單擊filetran.exe,都需要跟settings.txt和okfile.txt放在一起,否則程序會報錯。

以上就是python 寫一個文件分發小程序的詳細內容,更多關于python 文件分發的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女毛片一区二区三区四区 | 国产日韩1区| 欧美日韩国产免费观看| 综合日韩av| 久久九九精品| 久久中文字幕av| 国产精品99久久免费观看| 日韩激情综合| 美女性感视频久久| 国产精品22p| 福利一区和二区| 美女网站视频一区| 99久久婷婷这里只有精品| 99热国内精品| 亚洲欧美网站| 亚洲精品国产精品粉嫩| 天堂久久一区| 国产精品红桃| 色在线中文字幕| 国产亚洲一区二区手机在线观看 | 色综合视频一区二区三区日韩| 蜜臀av一区二区在线免费观看| 亚洲免费一区三区| 国产精品三p一区二区| 精品视频亚洲| 亚洲精品.com| 国产一级一区二区| 日韩精品五月天| 91日韩免费| 欧美成人一二区| 中文在线免费视频| 尤物网精品视频| 国产亚洲久久| 久久美女性网| 免费看黄色91| 国产精品亲子伦av一区二区三区| 中文字幕人成乱码在线观看| 国产高清久久| 国产日韩高清一区二区三区在线| 国产成人免费| 五月天久久网站| 国产精品第一| 黄色免费成人| 精品久久久网| 欧美日韩国产高清电影| 日韩福利视频导航| 九色精品91| 久久亚洲黄色| 亚洲三级国产| 日韩高清不卡| 欧美日本久久| 国产亚洲精品v| 粉嫩av一区二区三区四区五区 | 日韩欧美四区| 日本高清不卡一区二区三区视频| 日韩成人在线看| 在线国产一区| 99综合视频| 国产麻豆精品| 久久香蕉精品| 亚洲四虎影院| 日本欧洲一区二区| 99精品在线观看| 国产精品一区二区精品视频观看 | av亚洲免费| 国产乱人伦丫前精品视频| 精品一区在线| 手机在线电影一区| 久久国产乱子精品免费女| 日韩精品诱惑一区?区三区| 91麻豆精品激情在线观看最新 | 一二三区精品| 国产免费久久| 99久久夜色精品国产亚洲1000部| 亚洲欧洲美洲国产香蕉| 日本特黄久久久高潮| 久久中文字幕二区| 日韩中文字幕91| 精品日韩在线| 天堂久久av| 9久re热视频在线精品| 国内不卡的一区二区三区中文字幕| 国产精品国产一区| 午夜在线一区二区| 女生影院久久| 久久高清免费观看| 欧美日韩中文字幕一区二区三区| 久久夜色精品| 国产精品蜜月aⅴ在线| 男人操女人的视频在线观看欧美| 国产精品sm| 99在线|亚洲一区二区| 国产v综合v| 国产精品sss在线观看av| 日本综合精品一区| 麻豆国产一区| 丝袜美腿亚洲色图| 亚洲一级黄色| 久久影视三级福利片| 色综合www| 在线手机中文字幕| 7777精品| 欧美亚洲人成在线| 免费视频最近日韩| 国产一区二区中文| 桃色av一区二区| 亚洲视频二区| 久久久久久黄| 亚洲啊v在线| 国产精品久久久久久久久久久久久久久 | 日韩午夜一区| 国产一区二区色噜噜| 日韩综合一区二区三区| 97精品97| 国产欧洲在线| 国产精品久久久久久妇女 | 99久久激情| 97久久亚洲| 国产极品久久久久久久久波多结野| 亚洲一区二区动漫| 国产精品毛片久久| 波多视频一区| 国产精品久久久久久模特| 在线观看亚洲精品福利片| 婷婷综合国产| 亚洲精品伦理| 国产精品黄色| 亚洲影院天堂中文av色| 亚洲欧美日韩精品一区二区| 国产亚洲一区在线| 久久久夜精品| 午夜av一区| 蜜桃视频免费观看一区| 亚洲国产不卡| 综合色就爱涩涩涩综合婷婷| 国产亚洲精品久久久久婷婷瑜伽| 在线日韩视频| 玖玖玖国产精品| 欧美日韩国产综合网| 视频一区欧美日韩| 日韩激情一区二区| 日韩二区三区在线观看| 最新亚洲国产| 亚州欧美在线| 亚州精品视频| 四虎成人av| 日韩欧美一区二区三区在线观看 | 好吊视频一区二区三区四区| 欧美特黄视频| 97久久超碰| 久久精品xxxxx| 国产欧美一区二区色老头| 国产精品极品| 精品国内亚洲2022精品成人| 婷婷激情图片久久| 久久亚洲电影| 欧美日韩一视频区二区| 91免费精品| 欧美日韩激情| 久久中文字幕导航| 亚洲日本网址| 日韩精品免费视频一区二区三区| 国产中文字幕一区二区三区| 在线天堂中文资源最新版| 美国欧美日韩国产在线播放| 日产欧产美韩系列久久99| 亚洲一区导航| 蜜臀久久精品| 欧美精品一区二区三区精品| 国产精品极品国产中出| 黑森林国产精品av| 久久在线视频免费观看| 国产精品免费精品自在线观看| 久久久国产精品网站| 日韩精品麻豆| 国产探花在线精品一区二区| 日韩精品永久网址| 国产精品密蕾丝视频下载| 国产亚洲一区二区手机在线观看| 久久天堂av| 国际精品欧美精品| 波多野结衣久久精品| 亚洲毛片一区| 国产在线|日韩| 日韩高清一区二区| 视频一区二区三区在线| 精品一区二区男人吃奶| 亚洲精品欧洲| 伊人久久成人| 精品一区二区三区免费看| 视频一区日韩精品| 久久视频一区| 欧美午夜精彩| 国产精品一卡| 中文字幕亚洲影视| 夜夜精品视频| 国产精品一国产精品k频道56| 丝瓜av网站精品一区二区| 国产va免费精品观看精品视频| 中文字幕乱码亚洲无线精品一区|