python任务有困难

时间:2010-10-17 18:38:07

标签: python file

我是编程新手,编写处理文件的程序时遇到困难。该计划是读取文件,计算员工工资和更新的年初至今的工资总额。计算完成后,程序将写入新文件。

这是我到目前为止所做的:

empName = ""
prevYTD = 0.0
payRate = 0.0
hoursWorked = 0.0
recordCount = 0

def startUp():
    global empFile
    print "\n\n" + "PAYROLL REPORT".center(110)+"\n"
    print "Employee Name".ljust(30) + "Previous YTD".ljust(18) + \
          "Updated YTD".ljust(18) + "Pay Rate".ljust(13) + \
          "Hours Worked".ljust(19) + "Current Pay".ljust(8)
    print "-"* 109

    jobInfo = open("payroll_Assignment#7.txt", "r")

def readFile():
    global empName, prevYTD, payRate, hoursWorked, eof
    empRec = jobInfo.readline()
    if empRec == "":
        eof = True
    else:
        empName = empRec[:25]
        prevYTD = float(empRec[25:40])
        payRate = float(empRec[40:55])
        hoursWorked = float(empRec[55:])
        eof = False

def processRecords():
    global recordCount
    while not eof:
        recordCount +=1
        printRecord()
        readFile()


def printRecord():
    print empName, prevYTD, payRate, hoursWorked


def closeUp(): 
    jobInfo.close()
    print "\nNumber of records in the file was",recordCount

startUp()
readFile()
processRecords()
printRecord()
closeUp() 

我的问题是制作一个新文件。该程序假设写入一个新文件,我不知道该怎么做。很抱歉这个很笨拙,我很陌生。

2 个答案:

答案 0 :(得分:1)

不确定问题是什么,但有些成语可以让你轻松。

  1. 您可以避免测试EOF和while循环。
  2. 文件是可迭代的,因此您可以迭代它。

    for line in open('myfile','r'):
        doSomething(line)
    

    请参阅详情:http://docs.python.org/tutorial/inputoutput.html

    [编辑:根据修订后的问题]

    在python中打开一个用于写入的新文件应该很容易

    >>> logfile = open('test.log', 'w') # Opens a new file
    >>> logfile = open('test.log', 'a') # Opens a existing file to append information
    

    查看Python教程中打开文件的各种模式

答案 1 :(得分:0)

感谢您的回答。该计划是读取文件,计算员工工资和更新年度总计。计算完成后,程序将写入一个新文件。我无法弄清楚如何进行计算,制作,编写或保存更新的文件。