Experience5

发布时间 2023-06-07 00:36:34作者: _云中君
with open('data6.csv', 'r', encoding='gbk') as f:
    raw_data = f.read().split('\n')
    title1 = ['原始数据']

data1 = [float(i) for i in raw_data[1:]]
print(f'{title1[0]}:')
print(data1)

data2 = [int(float(i)+0.5) for i in data1]
title2 = ['四舍五入后数据']
print(f'{title2[0]}:')
print(data2)

with open('data6_processed.csv', 'w', encoding='gbk', newline='') as f:
    f.write(title1[0] + ',' + title2[0] + '\n')
    for i in range(len(data1)):
        f.write(str(str(data1[i]) + ',' + str(data2[i]) + '\n'))

 

{task6}

with open('data6.csv', 'r', encoding = 'gbk') as f:
    data = f.readlines()
print(f'{str(data[0].strip())}:')
data.remove(data[0])
lst=[]
for i in data:
    lst.append(float(i.strip()))
print(lst)

import csv

 

 

 task7.py

with open('data7.csv', 'r', encoding='gbk') as f:
    data0 = f.readlines()

data1 = [i.strip('\n').split(',') for i in data0]
title1 = data1.pop(0)

print(f'{title1[0]:10s}{title1[1]:10s}{title1[2]:10s}{title1[3]:10s}')

data2 = sorted(data1, key=lambda x: (x[2], -int(x[3])))
for i in data2:
    print(f'{i[0]:10s}{i[1]:10s}{i[2]:10s}{i[3]:10s}')


with open('data7_processed.csv', 'w', encoding='gbk') as f:
    f.write(','.join(title1) + '\n')
    for i in data2:
        f.write(','.join(i) + '\n')

 

 

 

task8.py

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

print('hamlet.txt粗略统计:')
print(f'行数:{len(data.splitlines())}')
print(f'单词数:{len(data.split())}')
print(f'字符数:{len(data)}')
print(f'空格数:{data.count(" ")}')

data1 = data.splitlines()
with open('hamlet_with_line_number.txt', 'w', encoding='utf-8') as f:
    for number, words in enumerate(data1, 1):
        f.write(f'{number}  {words}\n')

 task9.py

import datetime


def is_valid(x):
    if len(x) == 18 and x[:-1].isdigit() and (x[-1].isdigit() or x[-1] == 'X'):
        return True
    else:
        return False


with open('data9_id.txt', 'r', encoding='utf-8') as f:
    data0 = f.readlines()
    title = data0.pop(0)

data0 = [i.strip('\n').split(',') for i in data0]

data1 = []
for i in data0:
    if is_valid(i[1]):
        data1.append(i)
print(data1)

t = datetime.datetime.now()
y = t.strftime('%Y%m%d')
for i in data1:
    age = str(int(y)-int(i[1][6:14]))
    i.append(age[:2])
    i[1] = i[1][6:10] + '-' + i[1][10:12] + '-' + i[1][12:14]
data2 = sorted(data1, key=lambda x: -int(x[2]))

print('姓名, 出生日期, 年龄')
for i in data2:
    print(', '.join(i))

 

 

task10_1.

import random
import datetime

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

data0 = [i.strip('\n').split('\t') for i in data]
n = eval(input('输入随机抽点人数:'))
data1 = random.sample(data0, n)

for i in data1:
    print('  '.join(i))

t = datetime.datetime.now()
title = t.strftime('%Y%m%d')

with open(f'{title}.txt', 'w', encoding='utf-8') as f:
    for i in data1:
        f.write(f'{i[0]}\t{i[1]:6s}\t{i[2]:10s}\n')

 

 

 task10_2.

 

import datetime
t = datetime.datetime.now()
filename = t.strftime('%Y%m%d') + '.txt'
start='抽取开始'
print(start.center(50,'*'))
with open('data10_stu.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()

def random_selection(n):
    import random
    demo = random.sample(data, n)
    return demo
selection=set()
numbers=[]

while True:
    n = eval(input('输入随机抽点人数:'))
    if n != 0:
        x=random_selection(n)
        for i in x:
            print(i)
            data.remove(i)
            with open(filename,'a',encoding='utf-8') as f :
                f.writelines(i)
    else:
        print('抽取结束'.center(50,'*'))
        break