首页 > 编程知识 正文

python语言的特点,编程语言python

时间:2023-05-04 07:39:26 阅读:285684 作者:757

      在做文本分析过程中,需要实现将两个Excel文件中的数据完成合并操作,数据合并的要求与SQL中的内连接查询的功能一致。具体要求见如下图所示:

1.表一中的数据如下所示:


2.表二中的数据如下所示:


3.最后需要合并成的样例为:


      完成此问题的代码应分为三个模块:1.EXCEL文件的读取模块;2.EXCEL文件内容的合并模块;3.EXCEL文件的写入模块。具体代码如下所示:

import xlrdimport xlwtimport openpyxlimport stringimport sysPos_Table1 = sys.argv[1]Pos_Table2 = sys.argv[2]Pos_Table_End=sys.argv[2]Count1=int(sys.argv[3])-1Count2=int(sys.argv[4])-1def read07Excel(path): wb = openpyxl.load_workbook(path) sheet = wb.get_sheet_by_name('Sheet1') sheet_value=[] for row in sheet.rows: tmp=[] for cell in range(len(row)): tmp.append(row[cell].value) sheet_value.append(tmp) return sheet_valuedef write07Excel(path,value): wb = openpyxl.Workbook() sheet = wb.active sheet.title = 'Sheet1' for i in range(0, len(value)): for j in range(0, len(value[i])): sheet.cell(row=i+1, column=j+1, value=str(value[i][j])) wb.save(path) print("写入数据成功!")Table1_txt=read07Excel(Pos_Table1)Table2_txt=read07Excel(Pos_Table2)total=[]for i in range(len(Table1_txt)): tmp=[] for j in range(len(Table2_txt)): if str(Table1_txt[i][Count1])==str(Table2_txt[j][Count2]): for x in range(len(Table1_txt[i])): if x==Count1: continue Table2_txt[j].append(Table1_txt[i][x]) tmp=Table2_txt[j] total.append(tmp) breakwrite07Excel(Pos_Table_End,total)

我们来完成一个实例运行:

将1.xlsx文件如下图所示:


和2.xlsx文件如下图所示:


进行类似于SQL内连接的合并。

我们输入如下所示的命令:


此命令中包含4个参数:第一个为文件1的相对路径;第二个为文件2的相对路径;第3个为文件1中与文件2中的公共列的索引,例如本例中根据1.xlsx文件图中的标注取值为2;第4个为文件2中与文件1中的公共列的索引,例如本例中根据2.xlsx文件图中的标注取值为3

程序运行完成后,我们可以在文件2.xlsx中看到如下结果:


本程序的源代码下载地址为:https://github.com/XiaoYaoNet/Combine

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。