【发布时间】:2015-11-23 20:47:30
【问题描述】:
编辑:为了更清楚,更新了帖子,还没有答案有帮助!
好的,所以我的任务是获取一个文本文件,每行有 4 个条目,分别是名字、姓氏、小时数和工资率。我要做一些计算并将所有这些信息放入 python 中的格式化表中。现在,我有了将数据输入表格的代码,但它只适用于文本文件中的第一个条目,我不能让它循环。老实说,我觉得自己像个白痴,这只是一个简单的解决方法。
我的输出应该是这样的:
http://i.imgur.com/bIOBqye.png
真的可以使用一些指针来使这个循环通过并打印文本文件每一行的数据。这是我当前代码的外观:
heading1 = "{0:15s}{1:15s}{2:10s}{3:15s}{4:20s}{5:15s}".format("First Name", "Last Name", "Hours", "Payrate", "Overtime Hours", "Gross Pay")
heading2= "=============================================================================================================="
print(heading1)
print(heading2)
if os.path.isfile(fileQuestion) == True:
file = open('emps', 'r')
data = file.readlines()
for tmp in data:
data2= [word.rstrip("\n") for word in data]
first = data2[0].split()
lastName = first[0]
firstName = first[1]
first[2]=(int(first[2]))
first[3]=(int(first[3]))
initialHours = first[2]
payRate = first[3]
if initialHours > 40:
overHours = initialHours - 40
regHours = 40
regPay = payRate * regHours
otPay = overHours * (payRate * 1.5)
grossPay = regPay + otPay
else:
regHours = first[2]
grossPay = initialHours * payRate
overHours = 0
heading3= "{0:15s}{1:15s}{2:2d}{3:10d}{4:14d} {5:24.2f}".format(firstName, lastName, regHours, payRate, overHours, grossPay)
heading4= "{0:15s}{1:21.2f}".format("Total Gross Pay", grossPay)
heading5= "{0:15s}{1:19.2f}".format("Average Gross Pay", grossPay)
heading6= "{0:15s}{1:16d}".format("Total Overtime Hours", 33)
spaceHeading = " "
print(heading3)
print(spaceHeading)
print(heading4)
print(heading5)
print(heading6)
如果我没有正确完成此操作或其他任何事情,请告诉我,这是第一次。谢谢。
【问题讨论】:
-
file.readlines() 读取所有行并放入一个字符串。您应该在循环中使用 f.readline 。查找正确的语法
标签: python