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

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

python 寫一個文件分發小程序

瀏覽:52日期: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久久,三上悠亚国产精品一区二区三区
丝袜亚洲精品中文字幕一区| 久久av综合| 国产不卡一区| 天堂а√在线最新版中文在线| 麻豆视频一区| 日韩国产一区二区| 免费国产自久久久久三四区久久| 日本久久精品| 亚洲www啪成人一区二区| 亚洲高清影视| 日韩三区四区| 久久91视频| yellow在线观看网址| 在线日韩视频| 日韩欧美2区| 久久久久亚洲精品中文字幕| 成人福利av| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久免费高清| 欧美中文日韩| 欧美精品97| 激情欧美日韩一区| 欧美日韩夜夜| 国产丝袜一区| 亚洲欧洲一区| 国产丝袜一区| 亚洲成人精选| 国产精品成人**免费视频| 国产91久久精品一区二区| 18国产精品| 99re国产精品| 国内在线观看一区二区三区| 久久只有精品| 免费人成网站在线观看欧美高清| 日韩高清不卡一区| 亲子伦视频一区二区三区| 欧美在线看片| 亚洲少妇自拍| 久久久久亚洲| 中文在线а√天堂| 日韩有码av| 亚洲天堂日韩在线| 91成人精品| 色综合五月天| 久久中文字幕一区二区| 偷拍亚洲精品| 欧美在线资源| 欧美亚洲三区| 日本成人中文字幕在线视频| 国产一区观看| 成人久久久久| 神马久久午夜| 久久男人天堂| 精品久久在线| 麻豆91小视频| 日本免费在线视频不卡一不卡二| 91久久亚洲| 免播放器亚洲| 日韩av免费大片| 国产精品一区免费在线| 国产精品亚洲四区在线观看| 日本国产一区| 国产精品白丝一区二区三区| 日韩1区2区3区| 爽好多水快深点欧美视频| 高清不卡亚洲| 亚洲风情在线资源| 国产精品88久久久久久| 久久久久久久久久久9不雅视频| 亚洲啊v在线| 正在播放日韩精品| 日韩视频不卡| 国产精品婷婷| 久久www成人_看片免费不卡| 美女日韩在线中文字幕| 日韩av不卡在线观看| 精品久久久中文字幕| 欧洲av一区二区| 午夜在线观看免费一区| 国产欧美日韩视频在线| 国产粉嫩在线观看| 美女网站久久| 精品国产aⅴ| 一区在线观看| 美女视频一区在线观看| 91亚洲一区| 一区二区三区午夜视频| 久久久久久亚洲精品美女| 激情视频一区二区三区| 国产欧美高清视频在线| 国产精品99免费看| 麻豆成人在线观看| 久久亚洲一区| 久久男人天堂| 日韩av中文字幕一区二区三区| 97精品国产| 国产免费久久| 免费看欧美美女黄的网站| 久久久久免费| 国产免费av一区二区三区| 欧美日韩视频网站| 日韩和欧美一区二区三区| 久久久精品日韩| 精品国产三区在线| 国产精品一站二站| 亚洲欧美日本国产专区一区| 精品一区二区三区四区五区| 综合亚洲自拍| 午夜国产精品视频| 超碰成人av| 成人亚洲精品| 免费一级欧美在线观看视频| 日韩精品a在线观看91| 亚洲自啪免费| 极品裸体白嫩激情啪啪国产精品| 国产欧美日本| 日韩三区四区| 日韩免费精品| 无码日韩精品一区二区免费| 欧美特黄a级高清免费大片a级| 国产 日韩 欧美一区| 国产成人精品三级高清久久91| 国产精品久久国产愉拍| 亚洲精品无播放器在线播放| 免费观看久久久4p| 国产亚洲在线观看| 老司机久久99久久精品播放免费| 亚洲国产日韩欧美在线| 宅男在线一区| 91精品啪在线观看国产18| 日韩1区2区| 99精品国产一区二区三区| 午夜精品成人av| 好吊日精品视频| 中文字幕亚洲精品乱码| 日韩av三区| 国产aa精品| 91精品99| 日韩av资源网| 国产专区精品| 亚洲国产专区校园欧美| 性色一区二区| 日本不卡一二三区黄网| 国产精品色在线网站| 国产欧美精品久久| 国产剧情一区| 精品久久99| 亚洲免费观看| 久久国产免费看| 国产在线不卡一区二区三区| 亚洲91久久| 日本午夜精品一区二区三区电影 | 国产精品自拍区| 欧美国产一级| 亚洲一区国产一区| 久久成人福利| 好吊视频一区二区三区四区| 日韩国产精品久久久久久亚洲| bbw在线视频| 亚洲一区二区三区高清不卡| 日韩欧美网址| 日韩精品一区二区三区av| 欧美国产小视频| 日韩精品成人在线观看| 日本高清不卡一区二区三区视频| 欧美色图国产精品| 国产极品一区| 国户精品久久久久久久久久久不卡| 亚洲免费播放| 国产精品黑丝在线播放| 日韩国产欧美视频| 91九色精品| 免费日韩一区二区三区| 中文字幕乱码亚洲无线精品一区| 国产精品调教| 热久久国产精品| 91偷拍一区二区三区精品| 日韩精品三区四区| 午夜在线视频一区二区区别| 日韩国产在线| 久久精品国产999大香线蕉| 日韩一区二区三区在线看| 久久国产直播| 日韩精品dvd| 国产精品三p一区二区| 黄色不卡一区| av中文资源在线资源免费观看| 国产福利亚洲| 精品国产三区在线| 91精品日本| 国产三级一区| 国产午夜久久av| 日韩高清在线一区| 91亚洲无吗| 亲子伦视频一区二区三区| 成人三级高清视频在线看| 成人午夜在线| 婷婷综合六月| 亚洲免费精品| 69堂精品视频在线播放|