标题:小白求指导-使用封装简化代码
只看楼主
qyt654724589
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-8-8
 问题点数:0 回复次数:0 
小白求指导-使用封装简化代码
题目描述

文本提取数据.txt:
1.公司2017年1-9月的营业收入、归属于母公司所有者的净利润和扣除非经常性损益后归属于母公司所有者净利润分别为98,768.99万元、14,079.98万元和13,649.00万元,较2016年1-9月分别同比增长10.27%、35.63%和20.30%,体现了公司良好的经营情况。
2.导致公司2015年管理费用较2014年增长较大、2016年管理费用较2015年下降的主要原因为:①2015年3月,公司注册资本由7,900.00万美元增加至9,161.256万美元,新增股东宁波领挈、宁波领荣、宁波领祺、宁波领鑫及宁波领禧为公司员工持股平台,根据公司2014年12月

要求:
一、第1段话,分别拿出下面的营业收入、归属母公司所有者的净利润、扣除非经常性损益后归属于母公司所有者净利润,格式为元组,(日期,名称,数值,单位),格式化成2017-9-30,存入到list中

二、拿出第2段话的注册资本,也就是 (2015年,注册资本,7,900.00,美元),也存入一的list中

题目来源及自己的思路
虽然以完成要求,但被告知还是有改进的空间,奈何技术浅薄不知该如何使用 封装 进行改进

相关代码

以下是目前的代码:

**文件数据提取部分:**
#--coding:utf-8--
class Extract():

def __init__(self, result):
    self.result = result  #result = 传入一个需要打开的文件名称

def extract2(self):
    file = open(self.result.decode('utf-8'), 'r')
    key = file.read().decode('gbk')
    return key

**数据操作部分:**
#--coding:utf-8--
import re

class Processing():

def __init__(self, result):
    self.result = result

def processing(self):
    key = self.result
    print "\n" + key + "\n"
    list = []
    date = input("请输入统一格式日期")
    sonList1 = [date]
    sonList2 = [date]
    sonList3 = [date]
    sonList4 = []
    file = open('文本提取数据.txt'.decode('utf-8'), 'r')
    key = file.read().decode('gbk')
    pattern = (u'([\d,.]+)万')
    matcher = re.findall(pattern, key)
    pass
    pattern1 = (u'营业收入')
    matcher1 = re.search(pattern1, key)
    sonList1.append(matcher1.group())
    sonList1.append(matcher[0])
    sonList1.append('万元')
    sonList1 = tuple(sonList1)
    list.append(sonList1)
    pass
    pattern2 = (u'归属于母公司所有者的净利润')
    matcher2 = re.search(pattern2, key)
    sonList2.append(matcher2.group())
    sonList2.append(matcher[1])
    sonList2.append('万元')
    sonList2 = tuple(sonList2)
    list.append(sonList2)
    pass
    pattern3 = (u'扣除非经常性损益后归属于母公司所有者净利润')
    matcher3 = re.search(pattern3, key)
    sonList3.append(matcher3.group())
    sonList3.append(matcher[2])
    sonList3.append('万元')
    sonList3 = tuple(sonList3)
    list.append(sonList3)
    pass
    pattern4 = (u'2015年')
    matcher4 = re.search(pattern4, key)
    pattern5 = (u'注册资本')
    matcher5 = re.search(pattern5, key)
    sonList4.append(matcher4.group())
    sonList4.append(matcher5.group())
    sonList4.append(matcher[3])
    sonList4.append('美元')
    sonList4 = tuple(sonList4)
    list.append(sonList4)
    for i in range(0, 4):
        print "\n"
        for j in list[i]:
            print j,
            
模块调用部分:
#--coding:utf-8--
import extract
import dataProcessing

a = input("需打开的文件名")
getData = extract.Extract(a)
c = getData.extract2()
operating = dataProcessing.Processing(c)
print operating.processing()
#'文本提取数据.txt' '2017-09-30'

你期待的结果是什么?实际看到的错误信息又是什么?
使用封装对代码进行简化,使数据操作部分不再那么亢杂
搜索更多相关主题的帖子: 代码 公司 list result key 
2018-08-08 18:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489109-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038507 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved