当前位置: 首页 > news >正文

备案网站查询效果好网站建设哪家好

备案网站查询,效果好网站建设哪家好,装修网站设计图推荐,seo外链发布技巧1 小工具说明 1.1 功能说明 一般来说#xff0c;我们会先有一个老的文件#xff0c;这个文件内容是定制好相关列的表格#xff0c;作为每天的报告。 当下一天来的时候#xff0c;需要根据新的报表文件和昨天的报表文件做一个合并#xff0c;合并的时候就会出现有些事新增…1 小工具说明 1.1 功能说明 一般来说我们会先有一个老的文件这个文件内容是定制好相关列的表格作为每天的报告。 当下一天来的时候需要根据新的报表文件和昨天的报表文件做一个合并合并的时候就会出现有些事新增条目、有些是可能要删除的条目、有些是要更新状态的条目。 当前使用python编写的练习就是达到这个简单目的。 1.2 配置文件 配置文件内容样例 yesterdayF:\projects\daily_merge_tool\test_files\scene1_no_diff\yesterday.xlsx todayF:\projects\daily_merge_tool\test_files\scene1_no_diff\today.xlsx reportF:\projects\daily_merge_tool\test_files\scene1_no_diff\report.csv yesterday_primary_key_columnD yesterday_status_columnE today_primary_key_columnF today_status_columnE today_mapping_yesterdayC:B,D:C,F:D,E:E,H:F,I:G,J:H,K:I,L:J,M:Kyesterday的值为昨天的报表文件绝对路径 today的值为今天从其他系统新导出来的报表文件的绝对路径 report的值为存放合并当天最新报表的csv文件的绝对路径 yesterday_primary_key_column的值为昨天的报表文件中能够唯一代表一行数据的属性所在的列例如如果值是字母A是excel表格的第一列 yesterday_status_column的值为昨天的报表文件中当前行数据的状态列例如如果值是字母A是excel表格的第一列 today_primary_key_column值为今天的报表文件中能够唯一代表一行数据的属性所在的列例如如果值是字母A是excel表格的第一列 today_status_column的值为今天的报表文件中当前行数据的状态列例如如果值是字母A是excel表格的第一列 today_mapping_yesterday的值为昨天报表文件中各个列的数据来源映射到今天新导出的报表文件中的列 1.3 几个文件的样例 yesterday.xlsx today.xlsx 生成的report.csv相比yesterday.xlsx增加了1列Tag标示当前行是新加还是修改了状态还是确认是否要删除 2 工具代码 https://download.csdn.net/download/WolfOfSiberian/88399882 import sys import datetime import xlrddef read_excel(excel_file_path):print(read excel: str(excel_file_path))readfile xlrd.open_workbook(excel_file_path)names readfile.sheet_names()obj_sheet readfile.sheet_by_name(names[0])row obj_sheet.nrows# col obj_sheet.ncolsresult [0 for i in range(row)]for i in range(row):result[i] obj_sheet.row_values(i)return resultdef get_id_list(filepath, primary_key_column):print(str(datetime.datetime.now()) method get_id_list() invoked.)file_arrary read_excel(filepath)data_row_num len(file_arrary)id_list []for i in range(1, data_row_num):id_list.append(file_arrary[i][ord(primary_key_column) - ord(A)])print(str(datetime.datetime.now()) file: filepath , id list: str(id_list))return id_listdef get_operation_list(yesterday_filepath, today_filepath,yesterday_primary_key_column,today_primary_key_column):yesterday_id_list get_id_list(yesterday_filepath, yesterday_primary_key_column)today_id_list get_id_list(today_filepath, today_primary_key_column)to_add []to_del []to_update []operationList [yesterday_id_list, today_id_list, to_add, to_del, to_update]for i in range(len(yesterday_id_list)):is_exist_in_today 0curr_yesterday_id yesterday_id_list[i]for j in range(len(today_id_list)):if curr_yesterday_id today_id_list[j]:if curr_yesterday_id not in to_update:to_update.append(curr_yesterday_id)is_exist_in_today 1breakif is_exist_in_today 0:if curr_yesterday_id not in to_del:to_del.append(curr_yesterday_id)is_exist_in_today 0 #reset statusfor i in range(len(today_id_list)):curr_today_id today_id_list[i]if curr_today_id not in yesterday_id_list:if curr_today_id not in to_add:to_add.append(curr_today_id)print(operationList: \nyesterday_id_list, str(operationList[0]) ,\ntoday_id_list str(operationList[1]) ,\nto_add str(operationList[2]) ,\nto_del str(operationList[3]) ,\nto_update str(operationList[4]))return operationListdef get_status_by_id(id, primary_key_column, status_column, total_result):for i in range(1, len(total_result)):if id total_result[i][ord(primary_key_column) - ord(A)]:return total_result[i][ord(status_column) - ord(A)]return N/Adef read_configurations(configuration_filepath):#configuration.txt内容例子# yesterdayF:\\projects\\daily_merge\\test_files\\scene1_no_diff\\yesterday.xlsx# todayF:\\projects\\daily_merge\\test_files\\scene1_no_diff\\today.xlsx# reportF:\\projects\\daily_merge\\test_files\\scene1_no_diff\\report.csv# yesterday_primary_key_columnD# yesterday_status_columnE# today_primary_key_columnF# today_status_columnE# today_mapping_yesterdayC:B,D:C,F:D,E:E,H:F,I:G,J:H,K:I,L:J,M:Kprint(configuration filepath: configuration_filepath)configuration_file open(configuration_filepath, moder)lines configuration_file.readlines()configurations {}for line in lines:entry line.strip().split()if , in entry[1]:# today_mapping_yesterdaymapping_entry_array entry[1].split(,)today_mapping_yesterday {}for mapping_entry in mapping_entry_array:mapping_key_value mapping_entry.split(:)today_mapping_yesterday[mapping_key_value[0]] mapping_key_value[1]configurations[entry[0]] today_mapping_yesterdayelse :configurations[entry[0]] entry[1]return configurationsdef generate_today_report(configuration_filepath):yesterday F:\\projects\\daily_merge\\test_files\\scene1_no_diff\\yesterday.xlsx# today F:\\projects\\daily_merge\\test_files\\scene1_no_diff\\today.xlsx# report F:\\projects\\daily_merge\\test_files\\scene1_no_diff\\report.csv# yesterday_primary_key_column D# yesterday_status_column E# today_primary_key_column F# today_status_column E# today_mapping_yesterday {C:B,# D:C,# F:D,# E:E,# H:F,# I:G,# J:H,# K:I,# L:J,# M:K}configurations read_configurations(configuration_filepath)today configurations[today]report configurations[report]yesterday_primary_key_column configurations[yesterday_primary_key_column]yesterday_status_column configurations[yesterday_status_column]today_primary_key_column configurations[today_primary_key_column]today_status_column configurations[today_status_column]today_mapping_yesterday configurations[today_mapping_yesterday]yesterday_result read_excel(yesterday)today_result read_excel(today)operation_list get_operation_list(yesterday, today, yesterday_primary_key_column, today_primary_key_column)try:report_file open(report, modew)#write titlefor i in range(len(yesterday_result[0])):report_file.write(yesterday_result[0][i]) report_file.write(,)report_file.write(Tag)report_file.write(\n)#write contentfor i in range(1, len(today_result)):id operation_list[1][i - 1]if id in operation_list[2]:#add#extract for report according by column index mappingto_add_report_record []for x in range(len(yesterday_result[0])):to_add_report_record.append()for j in range(len(today_result[i])):current_today_column chr(j ord(A))if current_today_column in today_mapping_yesterday:to_add_report_record[ord(today_mapping_yesterday[current_today_column]) - ord(A)] today_result[i][j]#write to report for m in range(len(to_add_report_record)):report_file.write(str(to_add_report_record[m]))report_file.write(,)report_file.write(to add)report_file.write(\n)for i in range(1, len(yesterday_result)):id operation_list[0][i - 1]if id in operation_list[3]:#deletefor j in range(len(yesterday_result[i])):report_file.write(str(yesterday_result[i][j]))report_file.write(,)report_file.write(to delete)else :#updatefor j in range(len(yesterday_result[i])):today_status get_status_by_id(id, today_primary_key_column, today_status_column, today_result)if j ord(yesterday_status_column) - ord(A):report_file.write(today_status)else :report_file.write(str(yesterday_result[i][j]))report_file.write(,)report_file.write(to update)report_file.write(\n)except Exception as e:print(failed to generate report.)print(e)finally:report_file.close()print(generate report successfully.)return print(^^^^) if len(sys.argv) 1:print(please input the configuration filepath when running this python file.) else :generate_today_report(sys.argv[1]) print(^^^^)3 参考资料 解决python中XLRDError: Excel xlsx file not supported https://blog.csdn.net/qq_53464193/article/details/128407954 VSCode使用 - 搭建python运行调试环境 https://zhuanlan.zhihu.com/p/625844895?utm_id0wdeqidb12208f700185aeb000000036498f302 Python读取Excel文件 https://blog.csdn.net/weixin_49895216/article/details/127812149 python操作Excel读写–使用xlrd https://blog.csdn.net/qq_36396104/article/details/77875703
http://www.hkea.cn/news/14570365/

相关文章:

  • 网站建设与规划实训总结猪八戒托管赏金做网站
  • 济南网站优化收费网页快速收录
  • 快递企业网站建设设计方案范例建设银行激活社保卡网站
  • 求职招聘网站开发深圳网站建设明细报价表
  • 网站的建设域名空间适合发软文的平台
  • 网站开发项目计划书ppt新媒体营销策略
  • 免费网站论坛南京自助网站推广建站
  • 在做网站的公司做网站运营犯法吗仁怀企业网站建设
  • wordpress 注册插件做优化排名会不会影响网站速度
  • 网站诊断表运维培训机构哪个好
  • 哪个网站做照片书最好看全方位营销型网站
  • 个人网站做多久有效果温州市网络科技有限公司
  • 免费自助小型网站如何seo推广工厂店
  • 石家庄科技网站建设wordpress多站点建站
  • 仿站下载工具平面设计软件图标图片
  • 有哪些官网做的比较好的网站网站建设全教程
  • 公司在选择网站时应考虑什么百度 营销推广怎么做
  • 傻瓜式网页制作网站苏州城乡建设网站查询
  • 智慧团建入口登录网站阿里服务器怎么做网站服务器
  • 大学生做网上英语翻译兼职网站商城类的网站怎么做
  • 定制网站制作系统长沙房地产管理局
  • 时光慢网站建设方案论文企业网站html模板
  • 英语网站案例做网站免费服务器哪家好
  • 如何使用ps做网站建设银行怎么从网站上改手机号码
  • 鞍山建立公司网站的步骤wordpress免登录发布接口
  • 如何建设cpa影视网站下城区做网站
  • 云南网站建设c3saleswordpress points
  • 网站模板源码免费下载注册公司每年需要缴纳什么费用
  • 减肥产品网站模板wordpress 获取文章id
  • 网站代理游戏淘宝做推广网站