实验5

task3

with open('data3.txt', 'r+', encoding='utf-8')as f:
    a = f.read().split('\n')
    a[0] = '原始数据' + '\t' + '四舍五入后数据' + '\n'
    for i in range(1, len(a)):
        if eval(a[i])-int(eval(a[i])) >= 0.5:
            a[i] = a[i]+'\t'*2+str(int(eval(a[i]))+1) + '\n'
        else:
            a[i] = a[i] + '\t'*2 + str(int(eval(a[i]))) + '\n'
with open('data3.txt', 'w+', encoding='utf-8')as f:
    f.writelines(a)

 

 task4

with open('data4.txt', 'r+', encoding='utf-8')as f:
a = [i.strip('\n').split('\t') for i in f]
b = a[0]
a.pop(0)
a.sort(key=lambda x: (x[2], -int(x[-1]))) # 第三列升序,第四列降序
with open('data4_progressed.txt', 'w+', encoding='utf-8')as f:
f.write('\t'.join(b) + '\n')
for line in a:
f.write('\t'.join(line)+'\n')
with open('data4_progressed.txt', 'r', encoding='utf-8')as f:
print(f.read())

 

 

 

 task5

with open('data5.txt', 'r+', encoding='utf-8') as f:
    text = ''.join([i for i in f])
    print(f'行数:{len(text.splitlines())}')
    print(f'单词数:{len(text.split())}')
    print(f"空格数:{text.count(' ')}")
    print(f'字符数:{len(text)}')

with open('data5_with_line.txt', 'w', encoding='utf-8') as f:
    for i in range(len(text.splitlines())):
        f.write('{} {}'.format(i+1, text.split('\n')[i])+'\n')

 

 

 

posted @ 2022-05-14 19:48  东揚  阅读(31)  评论(3编辑  收藏  举报