本章介绍了顺序文件的输入和输出,学习如何读取和写入大量数据,并将数据存储为字段和记录。本章最后讨论异常,并演示了如何编写异常处理代码。
#1文件显示
def main():
file=open('number.txt','r')
for line in file:
print(line,end='')
file.close()
if __name__=="__main__":
main()
#2文件头显示
def main():
name=input("Please enter the file name:")
file=open(name,'r')
line=file.readline()
i=0
while i<5 and line!='':
line=line.rstrip('\n')
print(line)
line=file.readline()
i+=1
file.close()
if __name__=="__main__":
main()
#3行号
def main():
name=input("Please enter the file name:")
try:
file = open(name, 'r')
line = file.readline()
i = 1
while line != '':
line = line.rstrip('\n')
print(i, ':', line)
line = file.readline()
i += 1
except IOError as ero:
print(ero)
else:
file.close()
finally:
print("The program is over")
if __name__=="__main__":
main()
#4数据项计数器
def main():
file=open('names.txt','r')
count=0
for line in file:
count+=1
print(line.rstrip('\n'))
print("The number of line is",count)
if __name__=="__main__":
main()
#5数字之和
def main():
file=open('number.txt','r')
sum=0
for line in file:
x=line.rstrip('\n')
sum+=int(x)
file.close()
print("The sum of 'number.txt' is",sum)
if __name__=="__main__":
main()
#6数字的平均值
def main():
file=open('number.txt','r')
count=0
sum=0
for line in file:
count+=1
num=line.rstrip('\n')
sum+=float(num)
if count==0:
print("This file is blank")
else:
print("The average is",f'{sum/count:.2f}')
file.close()
if __name__=="__main__":
main()
#7随机数文件写入器
import random
def main():
n=int(input("How many number you want to enter:"))
file=open('number.txt','w')
for i in range(n):
x=random.randint(1,500)
file.write(str(x)+'\n')
file.close()
if __name__=="__main__":
main()
#8随机数文件读取器
def main():
file=open('number.txt','r')
count=0
sum=0
for line in file:
count+=1
x=line.rstrip('\n')
sum+=int(x)
file.close()
print("The sum of 'number.txt' is",sum)
print("The number of number of'number .txt' is",count)
if __name__=="__main__":
main()
#9异常处理
def main():
try:
file = open('number.txt', 'r')
count = 0
sum = 0
for line in file:
count += 1
num = line.rstrip('\n')
sum += float(num)
if count == 0:
print("This file is blank")
else:
print("The average is", f'{sum / count:.2f}')
except IOError:
print("No such file")
except ValueError as ero:
print(ero)
file.close()
if __name__=="__main__":
main()
#10高尔夫成绩
def write_record():
n=int(input("Please enter the number of player:"))
file=open('golf.txt','w')
for i in range(n):
name=input("Please enter the name of golf player:")
grade=input("Please enter the grade of golf player:")
file.write(name+'\n')
file.write(grade+'\n')
file.close()
def read_record():
file=open('golf.txt','r')
i=1
line=file.readline()
while line!='':
print(i,'---')
print("The name:",line.rstrip('\n'))
line=file.readline()
print("The grade:",line.rstrip('\n'))
line=file.readline()
i+=1
def main():
write_record()
read_record()
if __name__=="__main__":
main()
#11个人主页产生器
def main():
name=input("Enter your name:")
describe=input("Describe yourself:")
file=open('personal_web.html','w')
file.write("<html>\n<head>\n</head>\n<body>\n")
file.write("\t<center>\n")
file.write(("\t\t<h1>"+name+"</h1>\n"))
file.write("\t<center>\n")
file.write("\t<hr />\n")
file.write("\t"+describe+"\n")
file.write("\t<hr />\n")
file.write("</body>\n</html>")
file.close()
if __name__=="__main__":
main()