|
20鱼币
如图提取excel红框里的“执行机构”行下面的内容,行数和内容未知,判断如果是“/”保存为14个空格,此单元格后面不作判断。
如果此单元格含有字符“单作用”保存为“SR”,如果含有字符“双作用”保存为“DA”,并将此单元格提取的数字放到前面,如图所示:
每个单元格完成后换行,保存为text文本。谢谢各位大神关注,以下为我的代码:
import pandas as pd
import easygui as g
import re
excel_file = g.fileopenbox(msg=None, title=None, default="*.xlsx", filetypes=None, multiple=False)
df = pd.read_excel(excel_file,sep='?',skiprows=[0,1])
cols = ['执行机构']
df_list_two = df[cols]
data2 = []
result = []
for index, row in df_list_two.iterrows():
#将列表转换为无分隔符的字符串
result = ''.join(row['执行机构'])
if '单'in result:
result='SR'
elif '双'in result:
result='DA'
else:
result=''
result = result.__str__()
data2 = ''.join(row['执行机构'])
if '/' in row['执行机构']:
data2=(' ' * 14)
else:
#使用re模块下的方法findall对data2进行正则匹配,提取出所有的数值型字符串
data2 = re.findall(r"\d+",data2)
data2 = ''.join(data2)
data2 = data2.__str__()
data2 = data2,result
txt_file = g.filesavebox(msg=None, title=None, default="智能打标.text", filetypes=None)
write_file = open(txt_file, mode='w', encoding='UTF-8')
for index in range(len(data2)):
write_line = data2[index] + '\n'
write_file.write(write_line)
write_file.close()
本帖最后由 XiaoPaiShen 于 2019-10-9 09:51 编辑
- import pandas as pd
- import easygui as g
- import re
- excel_file = g.fileopenbox(msg=None, title=None, default="*.xlsx", filetypes=None, multiple=False)
- df = pd.read_excel(excel_file,sep='?',skiprows=[0,1])
- result = []
- cols = ['执行机构']
- df_list = df[cols]
- row_content = ''
- suffix = ''
- pattern = r'(\d+)'
- for index, row in df_list.iterrows():
- #将列表转换为无分隔符的字符串
- zxjg = ''.join(row['执行机构'])
- if '/' in zxjg:
- row_content = ' '*14
- else:
- temp_content = re.findall(pattern, zxjg)
-
- if '单'in zxjg:
- suffix = 'SR'
- elif '双'in zxjg:
- suffix = 'DA'
- row_content = '{0}{1}'.format(temp_content[0], suffix)
- result.append(row_content)
-
- txt_file = g.filesavebox(msg=None, title=None, default="智能打标.txt", filetypes=None)
- write_file = open(txt_file, mode='w', encoding='UTF-8')
- for index in range(len(result)):
- write_line = result[index] + '\n'
- write_file.write(write_line)
- write_file.close()
复制代码
|
|