第6题:工资部门将每个支付周期的雇员信息的列表保存到一个文本文件,
每一行的格式:<last name><hourly wage><hours worked>
编写一个程序,让用户输出文件名并且最终向终端输出报表。
自行创建一个txt文件,如下图所示:
代码:
方法一、从txt文件中读取内容,并向excel表格文件写入
-
import xlwt
-
word=[]
-
fileName=input( "请输入文件名:")
-
f=open(fileName, 'r')
-
content=f.readlines()
-
i= 0
-
for line in content:
-
line=line.split()
-
word.append(line)
-
f.close()
-
-
print(word)
-
-
w =xlwt.Workbook(encoding = 'utf-8') #创建一个工作簿
-
ws =w.add_sheet( '1') #创建一个工作表
-
for i in range(len(content)):
-
for j in range(len(word[ 0])):
-
ws.write(i,j,word[i][j])
-
w.save( 'salary.xls')
最终,产生了一个salary.xls文件,文件内的内容和txt中一致
方法二、从txt文件中读取内容,并在控制台以表格形式展现
-
from prettytable import PrettyTable
-
word=[]
-
fileName=input( "请输入文件名:")
-
f=open(fileName, 'r')
-
content=f.readlines()
-
i= 0
-
for line in content:
-
line=line.split()
-
word.append(line)
-
f.close()
-
print(word)
-
-
for i in range(len(content)):
-
if i== 0:
-
table = PrettyTable(word[ 0])
-
else:
-
table.add_row(word[i])
-
table.reversesort = True
-
print(table)
-
+----------+-------------+------------+
-
| lastName | hoursWorked | hourlyWage |
-
+----------+-------------+------------+
-
| Bob | 4 | 80 |
-
| Ann | 8 | 160 |
-
| Jack | 6 | 120 |
-
| Lee | 13 | 260 |
-
| Steven | 24 | 480 |
-
+----------+-------------+------------+
第7题:在名为stats.py的模块中定义一些函数:计算列数字的中位数、众数和平均数,以列表为参数,返回一个单个的数字
代码:
-
#以下函数定义在一个stats.py的文件中,
-
#当import stats,可调用以下函数
-
#计算中位数
-
def median(lst):
-
if len(lst)% 2== 0:
-
return lst[len(lst)// 2 -1:len(lst)// 2+ 1]
-
else:
-
return lst[len(lst)// 2:len(lst)// 2+ 1]
-
-
#计算众数
-
def mode(lst):
-
return max(lst.count(x) for x in set(lst))
-
-
#计算平均数
-
def mean(lst):
-
return sum(lst)/len(lst)
调用自定义模块的步骤(lst是一个列表):
1. 导入该模块:import stats
2.调用函数:stats.median(lst) or stats.mode(lst) or stats.mean(lst)
第8题:编写程序,允许用户在文件的文本中导航。程序提示输入一个文件名,并且输出想要放入到列表中的文本 行, 实际行号范围是从1到文件行数,如果用户输入0,程序退出。否则程序输出和该行号相关的行。
代码:
-
fileName=input( "请输入文件名:")
-
addLines=input( "请输入文本:")
-
f=open(fileName, 'a+')
-
f.write( '\n'+addLines)
-
f.seek( 0)
-
content=f.readlines()
-
print(content)
-
f.close()
-
num= 1
-
while num:
-
print( "目前文件的行号范围为1~",len(content))
-
num=int(input( "请输入一个行号:"))
-
if num== 0:
-
break
-
else:
-
print(content[num -1])
-
num= 0
结果实例: