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

实验五 文件应用编程

时间:2023-06-04 12:57:18浏览次数:38  
标签:文件 open encoding data 编程 len 实验 print data1

with open('data6.csv','r',encoding='gbk') as f:
    data1 = f.read().split('\n')
del data1[0]
for i in range(len(data1)):
    data1[i] = eval(data1[i])
    data1[i] = float(data1[i])
print('原始数据:')
print(data1)
data2 = []
for i in range(len(data1)):
    data2.append(int(data1[i]+0.5))
print('四舍五入后数据:')
print(data2)
for i in range(len(data1)):
    data1[i] = str(data1[i])
for i in range(len(data1)):
    data2[i] = str(data2[i])
title = ['原始数据','四舍五入后数据']
info = []
for i in range(len(data1)):
    info.append([data1[i],data2[i]])
with open('data6_processed.csv','w',encoding='utf-8') as f:
    f.write(','.join(title)+'\n')
    for item in info:
        f.write(','.join(item)+'\n')

with open('data7.csv','r',encoding='gbk') as f:
    data1 = f.read().split('\n')
del data1[0]
lsta = []
lstm = []
for i in data1:
    lst1 = i.split(',')
    if lst1[2] == 'Acting':
        lsta.append(lst1)
    else:lstm.append(lst1)
lstm.sort(key=lambda x:x[-1],reverse = True)
lsta.sort(key=lambda x:x[-1],reverse = True)
info = lsta + lstm
title = ['学号','姓名','专业','分数']
with open('data7_processed.csv','w',encoding='utf-8') as f:
    f.write(','.join(title)+'\n')
    for items in info:
        f.write(','.join(items)+'\n')
print('{:<10}'.format(title[0]),'{:<10}'.format(title[1]),'{:<10}'.format(title[2]),'{:<15}'.format(title[3]))
for i in info:
    print('{:<10}'.format(i[0]),'{:<10}'.format(i[1]),'{:<10}'.format(i[2]),'{:<15}'.format(i[3]))

lines = 0
words = 0
sum1 = 0
space = 0
with open('hamlet.txt','r',encoding='utf-8') as f:
    for line in f:
        word = line.split()
        lines += 1
        words += len(word)
        sum1 += len(line)
        for i in line:
            if i == ' ':
                space += 1
            else:
                pass
print('hamlet.txt粗滤统计:')
print(f'行数:{lines}')
print(f'单词数:{words}')
print(f'字符数:{sum1}')
print(f'空格数:{space}')

with open('hamlet.txt','r',encoding = 'utf-8') as f:
    text = f.readlines()

for i in range(len(text)):
    text[i] = str(i+1) + ' ' + text[i]

with open('hamlet_with_line_number.txt','w',encoding = 'utf-8') as f:
    f.writelines(text)

def is_valid(sfz):
    if len(sfz) != 18:
        return False
    elif (sfz[:-1].isnumeric() and sfz[-1] == 'X') or sfz.isnumeric():
        return True
    else:return False


with open('data9_id.txt','r',encoding='utf-8') as f:
    data = f.read().split('\n')
del data[0]
data2 = []
data3 =[]
print('姓名,出生日期,年龄')
for i in data:
    lst = i.split(',')
    data2.append(lst)
lst2 = []
for i in data2:
    if is_valid(i[1]) == True:
        name = i[0]
        btd = i[1][6:14]
        age = str(2023 - int(i[1][6:10]))
        lst2.append([name,btd,age])
lst2.sort(key=lambda x:x[2],reverse=True)
for i in lst2:
    print(i[0],end=',')
    print(f'{i[1][:4]}-{i[1][4:6]}-{i[1][6:8]}',end=',')
    print(i[2])

with open('data10_stu.txt','r',encoding='utf-8') as f:
    data = f.readlines()
print('{:*^40}'.format('抽点开始'))
n = int(input('输入随机抽点人数:'))
import random
x = []
x2 = ''
counts = 0
while counts < n:
    new = random.randint(0, len(data) - 1)
    if new in x:
        new = random.randint(0, len(data) - 1)
    else:
        counts +=1
        x.append(new)
for i in range(n):
    print(data[x[i]])
    x2 += data[x[i]]
    sum1 += n
with open('20230602.txt','w',encoding='utf-8') as f:
    f.writelines(x2)

with open('data10_stu.txt','r',encoding='utf-8') as f:
    data = f.readlines()
print('{:*^40}'.format('抽点开始'))
n = int(input('输入随机抽点人数:'))
import random
x = []
sum1 = 0
x2 = ''
while n != 0:
    counts = 0
    while counts < n:
        new = random.randint(0, len(data) - 1)
        if new in x:
            new = random.randint(0, len(data) - 1)
        else:
            counts +=1
            x.append(new)
    for i in range(sum1,sum1+n):
        print(data[x[i]])
        x2 += data[x[i]]
    sum1 += n
    n = int(input('输入随机抽点人数:'))

with open('20230602.txt','w',encoding='utf-8') as f:
    f.writelines(x2)

print('{:*^40}'.format('抽点结束'))

 

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

相关文章

  • 极客时间--golang并发编程实战课--Mutex学习总结
    互斥锁的实现机制互斥锁是并发控制的一个手段,是为了避免竞争而建立的一种并发控制机制。在并发编程中,如果程序中的一部分会被并发访问或修改,那么,为了避免并发访问导致的意想不到的结果,这部分程序需要被保护起来,这部分被保护起来的程序,就叫做临界区。可以说,临界区就是一个被共......
  • 文件夹隐藏属性为灰色,无法修改的解决方案
    【关于U盘中毒,隐藏属性无法取消的解决办法】attrib命令:网上那些用法,看得我内分泌失调,到现在都不知道attrib的正确用法。网上找到一个批处理,很方便,可以批量设置或取消隐藏属性和系统属性。1、新建一个.txt文档2、把下面的代码复制进去3、保存4、把.txt后缀改成.bat5、不要双......
  • python基础学习-读写CSV文件
    CSV文件介绍参考:Python-Core-50-Courses/第23课:用Python读写CSV文件.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)CSV 全称逗号分隔值文件是一种简单、通用的文件格式,被广泛的应用于应用程序(数据库、电子表格等)数据的导入和导出以及异构系统之间的数据......
  • dbeaver 23启用从编程语言源码中提取SQL功能
    一直很喜欢dbeaver的一个自动提取剪切板SQL功能,该功能去除多余C#/Java中SQL字符串加号和双引号.但升级到dbeaver23之后,发现该功能默认被关闭了,开启功能见下图:......
  • 实验报告
    密码引擎部分1-OpenEuler-OpenSSL编译一、下载最新的OpenSSL源码(1.1版本)二、用自己的8位学号建立一个文件夹,cd你的学号,用pwd获得绝对路径三、参考https://www.cnblogs.com/rocedu/p/5087623.html先在Ubuntu中完成OpenSSL编译安装,然后在OpenEuler中重现./config--prefix=......
  • 钛合金先进成形与仿真实验室 西北工业大学 材料学院 博士
    子在川上曰,逝者如斯夫,不舍昼夜。自吾去蜀入秦,凡五年矣。昔之来者,翩翩素衣,白马银鞍,谈笑无忌。今将去也,堪堪而立,褐面黄须,肱股生腴。不得少瑜之梦笔,唯学祖狄而闻鸡。心高气傲以格钛二铝铌之物,智短才疏稍致材料加工之知。为此浅陋之文,以资博士之谋,诚不胜惶恐也。初入长安,即为恩师所知......
  • 实验五 文件应用编程
    实验任务一task1-1实验源码'''统计文件data1.txt行数(不包括空白行)data1.txt中的空白行包括由空格、Tab键(\t)、换行(\n)构成的空白行'''withopen('data1.txt','r',encoding='utf-8')asf:data=f.readlines()n=0forlineinda......
  • p1 文件的基本使用
    文件的基本使用一、文件什么是文件文件是保存数据的地方,比如word文档,txt文件,excel文件……都是文件。即可以保存一张图片,也可以保持视频,声音……文件流文件在程序中是以流的形式来操作的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存......
  • msi和exe文件区别
    msi是Windowsinstaller开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序.说白了msi就是Windowsinstaller的数据包,把所有和安装文件相关的内容封装在一个包里了.setup.exe也允许你安装程序,但程序员在开发setup.exe的时候要比开发setup.msi困难的多,需要人工编写......
  • windows按修改日期范围搜索文件
    *Mapper.xml修改日期:2021/‎9/‎21..‎2021/‎9/‎28......