现有文件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表示实际收入。注意扣税金额和 实际收入要取整数
题目分析
- 去掉多余空格,提取name、salary,计算tax、income
- 按照目标样式,循环写入新文件
- 最后打印读取文件的内容
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: