首页 > 编程语言 >实验5 文件应用编程

实验5 文件应用编程

时间:2023-06-05 21:33:43浏览次数:38  
标签:文件 encoding data1 open 编程 实验 print txt data

task6.py

 1 with open('data6.csv','r',encoding='gbk')as f:
 2     data=list(f.readlines())
 3 data=[i.strip('\n') for i in data ]
 4 
 5 import decimal
 6 decimal.getcontext().rounding='ROUND_HALF_UP'
 7 title=[data[0],'四舍五入后的数据']
 8 data_new=[]
 9 data_o=[]
10 for i in data:
11     if not i.isalpha() is True:
12         data_o.append(eval(i))
13 print('原始数据:')
14 print(data_o)
15 for i in data:
16     if not i.isalpha() is True:
17         data_new.append([i])
18 
19 data_=[]
20 for i in data:
21     if not i.isalpha() is True:
22         index=data.index(i)-1
23         i=eval(i)
24         if i-int(i)>=0.5:
25             i=int(i)+1
26             data_new[index].append(str(i))
27             data_.append(i)
28         else:
29             i=int(i)
30             data_new[index].append(str(i))
31             data_.append(i)
32 print('四舍五入后的数据:')
33 print(data_)
34 import csv
35 with open('data6_after.csv','w',encoding='gbk',newline='') as f :
36     f_writer=csv.writer(f)
37     f_writer.writerow(title)
38     f_writer.writerows(data_new)

运行结果:

 

task7.py

 1 with open('data7.csv','r',encoding='gbk') as f:
 2     data1 = f.read().split('\n')
 3 del data1[0]
 4 lsta = []
 5 lstb = []
 6 for i in data1:
 7     lst1 = i.split(',')
 8     if lst1[2] == 'Acting':
 9         lsta.append(lst1)
10     else:
11         lstb.append(lst1)
12 lstb.sort(key=lambda x:x[-1],reverse = True)
13 lsta.sort(key=lambda x:x[-1],reverse = True)
14 info = lsta + lstb
15 title = ['学号','姓名','专业','分数']
16 with open('data7_processed.csv','w',encoding='gbk') as f:
17     f.write(','.join(title)+'\n')
18     for items in info:
19         f.write(','.join(items)+'\n')
20 print('{:<10}'.format(title[0]),'{:<10}'.format(title[1]),'{:<10}'.format(title[2]),'{:<15}'.format(title[3]))
21 for i in info:
22     print('{:<10}'.format(i[0]),'{:<10}'.format(i[1]),'{:<10}'.format(i[2]),'{:<15}'.format(i[3]))

运行结果:

 

task8.py

 1 with open('hamlet.txt', 'r', encoding='utf-8') as f:
 2     data = f.read()
 3 
 4 print('hamlet.txt粗略统计:')
 5 print(f'行数:{len(data.splitlines())}')
 6 print(f'单词数:{len(data.split())}')
 7 print(f'字符数:{len(data)}')
 8 print(f'空格数:{data.count(" ")}')
 9 
10 data1 = data.splitlines()
11 with open('hamlet_with_line_number.txt', 'w', encoding='utf-8') as f:
12     for number, words in enumerate(data1, 1):
13         f.write(f'{number}  {words}\n')

运行结果:

 

task9.py

 1 with open('data9_id.txt','r',encoding='utf-8')as f:
 2     data=f.readlines()
 3 
 4 info=[line.strip('\n').split(',')for line in data]
 5 del info[0]
 6 
 7 def is_valid(id):
 8     y=id[:17]
 9     if (i in ['1','2','3','4','5','6','7','8','9','0','X'] for i in id) and len(id)==18 and y.isdigit() and (id[17]=='X' or id[17].isdigit()):
10         return True
11     else:
12         return False
13 print('{:<10} {:<10} {:<10} '.format('姓名','出生日期','年龄'))
14 import datetime
15 today=datetime.date.today()
16 valid_ls=[]
17 for ls in info:
18     if is_valid(ls[1]) is True:
19         y, m, d = ls[1][6:10], ls[1][10:12], ls[1][12:14]
20         birth = y + '-' + m + '-' + d
21         ls.append(birth)
22         del ls[1]
23         birthday=datetime.date(year=int(y),month=int(m),day=int(d))
24         age=str(round((today-birthday).days/365))
25         ls.append(age)
26         valid_ls.append(ls)
27 def takeThird(elem):
28     return elem[2]
29 valid_ls.sort(key=takeThird,reverse = True)
30 for ls in valid_ls:
31     for i in ls:
32         print('{:8}'.format(i),end='    ')
33     print()

运行结果:

 

task10.1.py

 1 import datetime
 2 t = datetime.datetime.now()
 3 filename = t.strftime('%Y%m%d') + '.txt'
 4 n=eval(input('输入随机抽取人数:'))
 5 with open('data10_stu.txt', 'r', encoding = 'utf-8') as f:
 6     data=f.readlines()
 7 
 8 def random_selection(n):
 9     import random
10     demo = random.sample(data, n)
11     return demo
12 x=random_selection(n)
13 for i in x :
14     print(i)
15 
16 with open(filename,'w',encoding='utf-8')as f:
17     f.writelines(x)

运行结果:

 

task10.2.py

 1 import random
 2 import datetime
 3 t = datetime.datetime.now()
 4 title = t.strftime('%Y%m%d')
 5 
 6 with open('data10_stu.txt', 'r', encoding='utf-8') as f:
 7     data = f.readlines()
 8 data0 = [i.strip('\n').split('\t') for i in data]
 9 
10 print(f'{"抽点开始":*^40}')
11 n = eval(input('输入随机抽点人数:'))
12 
13 a = 0
14 while n != 0:
15     data1 = random.sample(data0, n)
16     a += 1
17     for i in data1:
18         print('  '.join(i))
19         data0.remove(i)
20     if a == 1:
21         with open(f'{title}.txt', 'w', encoding='utf-8') as f:
22             for i in data1:
23                 f.write(f'{i[0]}\t{i[1]:6s}\t{i[2]:10s}\n')
24     else:
25         with open(f'{title}.txt', 'a', encoding='utf-8') as f:
26             for i in data1:
27                 f.write(f'{i[0]}\t{i[1]:6s}\t{i[2]:10s}\n')
28     n = eval(input('输入随机抽点人数:'))
29 print(f'{"抽点结束":*^40}')

运行结果:

 

标签:文件,encoding,data1,open,编程,实验,print,txt,data
From: https://www.cnblogs.com/hyy052416/p/17458980.html

相关文章

  • C语言编程语法—输入与输出
    当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C语言提供了一系列内置的函数来输出数......
  • 用c实现:编译出来的可执行文件运行完成后删除自己
    没办法。可执行文件和bat脚本文件不一样,它运行时会被加锁,无法获取写权限。原由:因为每次编译一个c文件后都会生成一个exe文件,占用了我的视野资源,所以我每次都要定期运行一个批处理脚本来清理这些文件。于是我就想,exe文件自己不是也有运行权限吗,它能不能自己获取自己的写权限在执行......
  • java程序设计对文件的操作
    1文件的读入与写进importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{FileinFile=newFile("D://example.txt");BufferedReaderbf=newBufferedReader(newFileReader(inFile));......
  • 实验6 turtle绘图与python库应用编程体验
    实验任务1:使用turtle绘制基础图形task1_1.py实验源码:1fromturtleimport*23defmove(x,y):4penup()5goto(x,y)6pendown()78defdraw(n,size=100):9foriinrange(n):10fd(size)11left(360/n)12......
  • 实验5
    6.实验任务6task6.py实验源码:1withopen('data6.csv','r',encoding='gbk')asf:2old_data=f.read().split('\n')3delold_data[0]4processed_data=[]5foriinrange(len(old_data)):6ifeval(old_dat......
  • IO流:字符流-文件字符输出流的注意事项
         ......
  • 利用Jenkins的文件参数,上传文件并数字签名
    背景只有在服务器(windows系统)上才能对文件进行数字签名,但又不想共享服务器的账号密码,服务器已经搭建了jenkins平台,故想着利用jenkins来做上传文件并签名。操作步骤1.新建一个Freestyleproject的工程。2.进行配置,添加文件参数。3.设置文件文件路径。指定上传文件的路径,......
  • SpringBoot 文件上传下载工具样例
    最近工作遇到这样的情景:一大堆linux内网服务器,上面部署了mysql,nacos,xxljob等中间件,当然也给了一个很干净的windows内网服务器,什么软件都没有安装。比较欣慰的是:可以通过浏览器访问nacos、xxljob的管理页面。不幸的是:没有安装mysql客户端和xshell等工具。我可以通过......
  • 提高代码可移植性和可靠性的数据类型头文件
    cstdint自C++11开始被引入,旨在为C++程序员提供一种可移植的方式来定义固定宽度的整数类型和相关常量,解决平台兼容性问题以uint64_t为例,说明该头文件的作用uint64_t是unsignedlonglong的类型别名,typedefunsignedlonglonguint64_t;在一些编译器和平台上,unsigned......
  • 实验5 文件应用编程
    实验任务6实验源码:1withopen('data6.csv','r',encoding='gbk')asf:2raw_data=f.read().split('\n')3title1=['原始数据']45data1=[float(i)foriinraw_data[1:]]6print(f'{title1[0]......