文件应用编程

task6

 1 import csv
 2 title = []
 3 info = []
 4 
 5 with open('data6.csv','r',encoding='gbk') as f:
 6     f_reader = csv.reader(f)
 7     for line in f_reader:
 8         info.append(line)
 9 x = info.pop(0)
10 title.append(x)
11 title[0].append('四舍五入后数据')
12 for i in info:
13     mypoia = int(float(i[0])+0.5)
14     i.append(str(mypoia))
15 
16 with open('data6_processed.csv','w',encoding='gbk',newline = '') as f:
17     f_writer = csv.writer(f)
18     f_writer.writerow(title[0])
19     f_writer.writerows(info)
20 
21 print(title[0][0] + ':')
22 o = []
23 for i in info:
24     o.append(i[0])
25 print(o)
26 print(title[0][1] + ':')
27 p = []
28 for i in info:
29     p.append(i[1])
30 print(p)import csv
31 title = []
32 info = []
33 
34 with open('data6.csv','r',encoding='gbk') as f:
35     f_reader = csv.reader(f)
36     for line in f_reader:
37         info.append(line)
38 x = info.pop(0)
39 title.append(x)
40 title[0].append('四舍五入后数据')
41 for i in info:
42     mypoia = int(float(i[0])+0.5)
43     i.append(str(mypoia))
44 
45 with open('data6_processed.csv','w',encoding='gbk',newline = '') as f:
46     f_writer = csv.writer(f)
47     f_writer.writerow(title[0])
48     f_writer.writerows(info)
49 
50 print(title[0][0] + ':')
51 o = []
52 for i in info:
53     o.append(i[0])
54 print(o)
55 print(title[0][1] + ':')
56 p = []
57 for i in info:
58     p.append(i[1])
59 print(p)

结果:

 

task7

 1 import csv
 2 
 3 title = []
 4 info = []
 5 
 6 with open('data7.csv','r',encoding = 'gbk') as f:
 7     f_reader = csv.reader(f)
 8     for line in f_reader:
 9         info.append(line)
10 x = info.pop(0)
11 title.append(x)
12 
13 info.sort(key = lambda x : (x[2],-int(x[3])))
14 
15 
16 with open('data7_processed.csv','w',encoding = 'gbk',newline='') as f:
17     f_writer = csv.writer(f)
18     f_writer.writerow(title[0])
19     f_writer.writerows(info)
20 for i in title[0]:
21     print('%-10s'%i, end= '')
22 print()
23 for i in info:
24     for x in i:
25         print('%-10s'%x,end= '')
26     print()

结果:

 

task8

 1 with open('hamlet.txt','r',encoding= 'utf-8') as f:
 2     text = f.readlines()
 3 lin = 0
 4 for line in text:
 5     lin += 1
 6 words = []
 7 for i in text:
 8     if not i.isspace():
 9         words.append(i)
10 words_c = 0
11 import re
12 for i in words:
13     i = re.split(' |\n|\t|:|,|;',i)
14     for word in i:
15         if word.isalpha():
16             words_c += 1
17 characters = 0
18 for i in text:
19     for character in i:
20         characters += 1
21 blanks = 0
22 for i in text:
23     for blank in i:
24         if blank == ' ':
25             blanks += 1
26 print('hamlet.txt粗略统计:')
27 print(f'行数:{lin}')
28 print(f'单词数:{words_c}')
29 print(f'字符数:{characters}')
30 print(f'空格数:{blanks}')
31 
32 
33 lines = []
34 for number, line in enumerate(text, 1):
35     lines.append(f'{number}{line}')
36 with open('hamlet_with_line_number.txt','w',encoding='utf-8') as f:
37     for line in lines:
38         f.write(line)

结果:

task9

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

 1 with open('data10_stu.txt','r',encoding='utf-8') as f:
 2     data = f.readlines()
 3 print('{:*^40}'.format('抽点开始'))
 4 n = int(input('输入随机抽点人数:'))
 5 import random
 6 sum1 = 0
 7 x = []
 8 x2 = ''
 9 counts = 0
10 while counts < n:
11     new = random.randint(0, len(data) - 1)
12     if new in x:
13         new = random.randint(0, len(data) - 1)
14     else:
15         counts +=1
16         x.append(new)
17 for i in range(n):
18     print(data[x[i]])
19     x2 += data[x[i]]
20     sum1 += n
21 with open('20230602.txt','w',encoding='utf-8') as f:
22     f.writelines(x2)

结果:

task10_2

 1 with open('data10_stu.txt','r',encoding='utf-8') as f:
 2     data = f.readlines()
 3 print('{:*^40}'.format('抽点开始'))
 4 lst1 = []
 5 x = []
 6 while True:
 7     n = int(input('输入随机抽点人数:'))
 8     if n == 0:
 9         print('{:*^40}'.format('抽点结束'))
10         break
11     else:
12         x = []
13         import random
14         while len(x) < n:
15             t = random.randint(0, len(data)-1)
16             if (str(t) not in lst1) and (str(t) not in x):
17                 x.append(t)
18                 lst1.append(t)
19 
20         lst = []
21         for i in x:
22             print(data[i],end = '\n')
23         lst.append(data[i])
24 
25         import datetime
26         t = datetime.datetime.now()
27         y = t.strftime('%Y%m%d')
28         with open(f'{y}.txt','w',encoding='utf-8') as f:
29             f.writelines(lst)

结果:

 

posted @ 2023-06-07 01:09  柠七拧巴  阅读(25)  评论(0)    收藏  举报