python 操作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

 

实现第一种:读写都是操作txt文本

inFileName = 'file.txt'
outFileName = 'file2.txt'

with open(inFileName) as ifile, open(outFileName, 'w') as ofile:
    # beforeTax = ifile.read().splitlines()
    # or we could use
    beforeTax = ifile.read().split('\n')
    for one in beforeTax:
        # print(open)
        if one.count(';') != 1:  # ensure valid
            continue
        namePart, salaryPart = one.split(';')
        if namePart.count(':') != 1:  # ensure valid
            continue
        if salaryPart.count(':') != 1:  # ensure valid
            continue

        name = namePart.split(':')[1].strip()
        # salary = int(salaryPart.split(':').strip())  #lies对象没有strip属性,所以得取索引
        salary = int(salaryPart.split(':')[1].strip())
        # print(salaryPart)

        income = int(salary * 0.9)
        tax = int(salary * 0.1)

        outPutStr = 'name: {}   ;    salary:  {} ;  tax: {} ; income:  {}'.format(name, salary, tax, income)

        print(outPutStr)
        
        ofile.write(outPutStr + '\n')