实验5:文件应用编程

任务实验1:统计文件行数(不包括空白行):

task1.1:

1 with open('data1_1.txt','r',encoding='utf-8') as f:
2     data=f.readlines()
3 n=0
4 for line in data:
5     if line.strip('\n')=='':
6         continue
7     n+=1
8 print(f'共{n}行')

 

 task1.2:

1 with open('data1_1.txt','r',encoding='utf-8') as f:
2     n=0
3     for line in f:
4         if line.strip('\n')=='':
5             continue
6         n+=1
7 print(f'共{n}行')

 

 task1.3:

with open('data1_2.txt','r',encoding='utf-8') as f:
    n=0
    for line in f:
        if line.strip()=='':
            continue
        n+=1
print(f'共{n}行')

 

 task1.4:

1 with open('data1_2.txt','r',encoding='utf-8') as f:
2     n=0
3     for line in f:
4         if line.isspace():
5             continue
6         n+=1
7 print(f'共{n}行')

 

 任务实验2:统计独特行行数(在文件中只出现过一次的行):

 1 with open('data2.txt','r',encoding='utf-8') as f:
 2     data=f.read().split('\n')
 3 
 4 unique_line=[]
 5 for line in data:
 6      if data.count(line)==1:
 7          unique_line.append(line)
 8 
 9 print(f'共{len(unique_line)}独特行')
10 for i in unique_line:
11     print(i)

任务实验3:文件数据四舍五入处理

 1 with open('data3.txt','r',encoding='utf-8') as f:
 2     data=f.readlines()
 3     x0=[]
 4     x2=[]
 5     x3=[]
 6     for line in data:
 7         x0.append(line.strip('\n'))
 8     x1=x0[1:]
 9     for i in x1:
10         a=float(i)
11         if a-int(a)>=0.5:
12             b=int(a)+1
13         else:
14             b=int(a)
15         x3.append(a)
16         x2.append(b)
17     print(f'原始数据:\n{x3}')
18     print(f'四舍五入后数据:\n{x2}')
19     x3.insert(0,'原始数据')
20     x2.insert(0,'四舍五入后数据')
21 with open('data3_processed.txt','w',encoding='utf-8') as f:
22     for i in range(len(x2)):
23         f.write(f'{x3[i]}\t{x2[i]}\n')

任务实验4:成绩文件处理

 1 with open('data4.txt','r',encoding='utf-8') as f:
 2     data=f.readlines()
 3     data.remove(data[0])
 4     x0=[]
 5     for i in data:
 6         a=i.split()
 7         x0.append(a)
 8     x1=sorted(x0,key=(lambda x:x[2]))
 9     x2=[x1[i] for i in range(0,8)]
10     x3=sorted(x2,key=(lambda x:x[3]),reverse=True)
11     x4=[x1[i] for i in range(8,10)]
12     x5=sorted(x4,key=(lambda x:x[3]),reverse=True)
13     y=x3+x5
14 
15     y1=[]
16     for i in y:
17         b='\t'.join(i)
18         b=b+'\n'
19         y1.append(b)
20     y1.insert(0,'学号\t姓名\t专业\t分数\n')
21     for i in y1:
22         print(i)
23 with open('data4_processed.txt','w',encoding='utf-8')  as f:
24     for i in y1:
25         f.write(i)

任务实验5:文档统计处理

 1 with open('data5.txt','r',encoding='utf-8') as f:
 2     data=f.read()
 3     print('行数',len(data.splitlines()))
 4     print('单词数',len(data.split()))
 5     s=0
 6     for i in data:
 7         if i.isspace():
 8             s=s+1
 9     print('空格数',s)
10     print('字符数',len(data))
11 
12 with open('data5_processed.txt','w+',encoding='utf-8') as f:
13     for i in range(len(data.splitlines())):
14         f.write(str(i+1)+' '+str(data.splitlines()[i])+'\n')
15     

 

posted @ 2022-05-14 15:45  怡宝子  阅读(6)  评论(1编辑  收藏  举报