1艺赛旗 RPA 技术分享常见问题汇总贴
2python标准库之glob介绍
3RPA基础
4RPA答疑
5python3 遍历windows下 所有句柄及窗口名称
import win32guihwnd_title = dict()def get_all_hwnd(hwnd, mouse):if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})win32gui.EnumWindows(get_all_hwnd, 0)for h, t in hwnd_title.items():if t is not "":print(h,t)
View Code
6 css select 知识相关
7数据处理方面的问题
1 Dataframe数据批量写入Excel import xlrd import xlsxwritertarget_xls = r"C:\Users\Kun.Shi\Desktop\Excel\3.xlsx" q=['核算项目编码','公司','业务','期末余额','报表','差异'] # 写入数据 workbook = xlsxwriter.Workbook(target_xls) worksheet = workbook.add_worksheet() font = workbook.add_format({"font_size":14}) for n in range(len(q)):worksheet.write(2, n, q[n], font) for i in range(len(EAS_list)):for j in range(len(EAS_list[i])):worksheet.write(i+3, j, EAS_list[i][j], font) # 关闭文件流 workbook.close()numpy数据的应用2.1 两个numpy数组合成一个 import numpy as np from collections import Counter import pandas as pd month_list=np.vstack((month_list,month_list_x))2.2 numpy数据透析,并转为dataframe EAS_list = pd.DataFrame(EAS_list) EAS_list=pd.pivot_table(EAS_list,values=8,index=[3,0,1,2,4,5,6,7,9],aggfunc=np.sum,fill_value=0) EAS_list=EAS_list.reset_index().values2.3 numpy数组扩容 d4= np.array([[0]*7]*len(sys_list_htjyjgmx_cyc)) EAS_list_22020901=np.vstack((EAS_list_22020901,d4))2.4 读取Excel,空或者null的填0 value_htbzjyeqd_zl=value_htbzjyeqd_zl.fillna(0)2.5 csv转xlsx import pandas as pd f=open(r'C:\Users\Kun.Shi\Desktop\张老师\系统报表\系统报表\恒运宝报表\1.csv') csv = pd.read_csv(f, encoding='utf-8') csv.to_excel(r'C:\Users\Kun.Shi\Desktop\张老师\系统报表\系统报表\恒运宝报表\1.xlsx', sheet_name='data')2.6 判断是否存在在创建文件 import os path=[r'C:\Users\user\Desktop\对账表\张雯',r'C:\Users\user\Desktop\对账表\陈培君',r'C:\Users\user\Desktop\对账表\朱佳莲',r'C:\Users\user\Desktop\对账表\王欣元',r'C:\Users\user\Desktop\对账表\胥文焉'] print(path) for i in path:folder = os.path.exists(i)if not folder: os.makedirs(i)2.7 numpy删除1,2行 L_n=[1,2] EAS_list_22020701=np.delete(EAS_list_22020701,l_n,axis=0)2.8 numpy插入数组 b = np.array([['']*len(sys_list_zlsybb_xw)]) sys_list_zlsybb_xw=np.insert(sys_list_zlsybb_xw,1,values=b,axis=1)3 读取文件下的文件 self.files_hengxing=[] file_dir=r'C:\Users\Kun.Shi\Desktop\iExcel\1恒信' for root, dirs, files in os.walk(file_dir): pass for i in range(len(files)):self.files_hengxing.append(os.path.join(root,files[i])) #print(self.files_hengxing) def file_name(file_dir): for self.root, dirs, self.files in os.walk(file_dir): pass file_dir=r'C:\Users\Kun.Shi\Desktop\EAS_excel\王欣元' file_name(file_dir) print(self.files)4 字典合并 dict4=dict(dict1,**dict2)5 删除文件,移动文件 import os,shutil shutil.rmtree(r'Z:\shanghai\计划财务部\部门共享\财务部资产管理部\财务会计部\月报\RPA对账\EAS_excel') shutil.copytree(r'C:\Users\Kun.Shi\Desktop\EAS_excel',r'Z:\shanghai\计划财务部\部门共享\财务部资产管理部\财务会计部\月报\RPA对账\EAS_excell')6 正则匹配 a=re.search(r'[A-Z0-9]{6,13}-?[0-9]{1,10}',EAS_list[i,5]).group()7 日期计算d1 = datetime.datetime(int(finally_list[i,11][0:4]),int(finally_list[i,11][5:7]),int(finally_list[i,11][8:]))d2 = datetime.datetime(self.y,self.m,self.d)finally_list[i,12]=(d2 - d1).days8 删除文件下的所有含有中文的文件名称的文件 import re import os#默认路径 file_dir=r'C:\Users\user\Desktop\测试' file_list=[] flie_CN_list=[] last_list=[] dirlist=[] #读取默认路径下的所有文件夹路径和文件 for root, dirs, files in os.walk(file_dir): file_list.extend(files)dirlist.append(root) #匹配中文 zhmodel = re.compile(u'[\u4e00-\u9fa5]') #如果匹配到文件名中有中文则放入列表 for i in range(0,len(file_list)):match = zhmodel.search(file_list[i])if match:flie_CN_list.append(file_list[i])#将读出的文件路径和存在中文的文件名进行拼接 for i in range(0,len(flie_CN_list)):for x in dirlist:path = os.path.join(x,flie_CN_list[i])if os.path.isfile(path):last_list.append(path)print(last_list) #删除拼接好的含中文的文件名的文件 for i in last_list:os.remove(i)删除进程 import os os.system("taskkill /F /IM javaw.exe")
总览
8excell表格是空值的办法,以及如何将两个列表融合为一个字典
import pandas as pd df=pd.read_excel(io='',sheet_name='')
1、用数字 0 填充空值: df.fillna(value=0) 2、使用列 prince 的均值对 NA 进行填充: df['prince'].fillna(df['prince'].mean()) 3、清除 city 字段的字符空格: df['city']=df['city'].map(str.strip) 4、大小写转换: df['city']=df['city'].str.lower() 5、更改数据格式: df['price'].astype('int') 6、更改列名称: df.rename(columns={'category': 'category-size'}) 7、删除后出现的重复值: df['city'].drop_duplicates() 8、删除先出现的重复值: df['city'].drop_duplicates(keep='last') 9、数据替换: df['city'].replace('sh', 'shanghai')10把两个列表融合为一个字典 l_1=['name','age','sex'] l_2=['andy',11,'male'] dict(zip(l_1,l_2))
View Code