实验5 文件应用编程

1. 实验任务1:统计文件行数(不包括空白行)

方法1:

# task1_1.py
# 统计文件data1_1.txt行数 (不包括空白行)
# data1_1.txt中的空白行都是由\n构成的空白行
with open('data1_1.txt', 'r', encoding = 'utf-8') as f:
data = f.readlines() # 一次读入所有数据,按行读取,保存到列表中
n = 0
for line in data:
if line.strip('\n') == '':
continue
n += 1
print(f'共{n}行')

方法2:

# task1_2.py
# 统计文件data1_1.txt行数 (不包括空白行)
# data1_1.txt中的空白行都是由\n构成的空白行
with open('data1_1.txt', 'r', encoding = 'utf-8') as f:
    n = 0
    for line in f: # 逐行遍历处理
        if line.strip('\n') == '':
            continue
        n += 1
print(f'共{n}行')

方法1:

# task1_3.py
# 统计文件data1_2.txt行数 (不包括空白行)
# data1_2.txt中的空白行包括由空格、Tab键(\t)、换行(\n)构成的空白行
with open('data1_2.txt', 'r', encoding = 'utf-8') as f:
    n = 0
    for line in f:
        if line.strip() == '':
            continue
        n += 1
print(f'共{n}行')

方法2:

# task1_4.py
# 统计文件data1_2.txt行数 (不包括空白行)
# data1_2.txt中的空白行包括由空格、Tab键(\t)、换行(\n)构成的空白行
with open('data1_2.txt', 'r', encoding = 'utf-8') as f:
    n = 0
    for line in f:
        if line.isspace():
            continue
        n += 1
print(f'共{n}行')

2. 实验任务2:统计独特行行数(在文件中只出现一次的行)

# 统计其中只出现过一次的独特行行数,在屏幕上打印输出结果。
# task2.py
with open('data2.txt', 'r', encoding = 'utf-8') as f:
    data = f.read().split('\n')
    unique_line = []
    for line in data:
        if data.count(line) == 1:
            unique_line.append(line)
print(f'共{ len(unique_line) }独特行')
for i in unique_line:
    print(i)

 3. 实验任务3:文件数据四舍五入处理

 

with open('data3.txt', 'r', encoding = 'utf-8') as f:
    a=f.read().split("\n")
b=[]
b.append('四舍五入数据')
for i in range(1,len(a)):
    b.append(round(float(a[i])))
    a[i]=str(round(float(a[i]),1))
with open('data8.txt', 'w+', encoding = 'utf-8') as f:
    f.write(a[0]+'\t'+str(b[0]))
    f.write("\n")
    for i in range(1,len(a)):
        f.write(str(a[i]))
        f.write('\t'*2+str(b[i])) if len(a[i])>=4 else f.write('\t'*2+str(b[i]))
        f.write('\n')
for i in range(1,len(a)):
    a[i]=float(a[i])
print(a[0],'\n'+str(a[1:]))
print(b[0],'\n'+str(b[1:]))

 4. 实验任务4:成绩文件处理

with open('data4.txt','r+',encoding='utf-8') as f:
    str=[i.strip('\n').split('\t') for i in f]
    a=str.pop(0)
    str.sort(key=lambda x : (x[2],-int(x[-1])))
    print('\t'.join(a))
    for i in str:
        print('\t'.join(i))
with open('data4_progressed.txt','w') as f:
    f.write('\t'.join(a))
    f.write('\n')
    for i in str:
        f.write('\t'.join(i))
        f.write('\n')

 

 5. 实验任务5:文档统计处理

with open('data5.txt', 'r+', encoding = 'utf-8') as f:
    data=f.read()
    print('行数',len(data.splitlines()))
    print('单词数',len(data.split()))
    s=0
    for i in data:
        if i.isspace():
            s=s+1
    print('空格数',s)
    print('字符数',len(data))
with open('data5_with_line.txt', 'w+', encoding = 'utf-8') as f:
    for i in range(len(data.splitlines())):
        f.write(str(i+1)+' '+str(data.splitlines()[i])+'\n')

 

 

posted @ 2022-05-10 16:31  何处寻清欢  阅读(37)  评论(3编辑  收藏  举报