【练习6】格式化输出员工姓名、薪资及扣税明细

现有文件1(如下,请保存到文件file1.txt中), 记录了公司员工的薪资,其内容格式如下
name: Jack ; salary: 12000
name :Mike ; salary: 12300
name: Luk ; salary: 10030
name :Tim ; salary: 9000
name: John ; salary: 12000
name: Lisa ; salary: 11000
每个员工一行,记录了员工的姓名和薪资,
每行记录 原始文件中并不对齐,中间有或多或少的空格
现要求实现一个python程序,计算出所有员工的税后工资(薪资的90%)和扣税明细,
以如下格式存入新的文件 file2.txt中,如下所示
在这里插入图片描述
要求像上面一样的对齐
tax 表示扣税金额和 income表示实际收入。注意扣税金额和 实际收入要取整数

题目分析

  1. 去掉多余空格,提取name、salary,计算tax、income
  2. 按照目标样式,循环写入新文件
  3. 最后打印读取文件的内容
def get_salaryDetails(fileName1,fileName2):
    with open(fileName1,'r+',encoding='UTF-8') as f1,open(fileName2,'w+',encoding='UTF-8') as f2:
        salaryDetails = f1.read().split('\n')
        for one in salaryDetails:
            name,salary=one.split(';')
            name = name.split(':')[-1].strip(' ')
            salary = salary.split(':')[-1].strip(' ')
            f2.write(f'name:{name:7};     salary:{salary:7};   tax:{int(int(salary)*0.1):5}; income:{int(int(salary)*0.9):7}\n')

get_salaryDetails('D:/file1.txt','D:/file2.txt')

执行结果:

name: Jack   ;    salary:  12000 ;  tax: 1200 ; income:  10800
name: Mike   ;    salary:  12300 ;  tax: 1230 ; income:  11070
name: Luk    ;    salary:  10030 ;  tax: 1003 ; income:   9027
name: Tim    ;    salary:   9000 ;  tax:  900 ; income:   8100
name: John   ;    salary:  12000 ;  tax: 1200 ; income:  10800
name: Lisa   ;    salary:  11000 ;  tax: 1100 ; income:   9900

新文件file2.txt:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值