python -【六】文件操作

一、读取文件

"""
文件读取指针问题,操作的时候,不同的 read 函数,需要注释后才能读取出内容
"""

f = open('file/read_example.txt', 'r', encoding='utf-8')

print('--------------read-------------------')
content = f.read()
print(f'读取的内容是:{content}')

print('-------------readlines--------------------')
lines = f.readlines()
for line in lines:
    print(line.replace('\n', ''))

print('-------------readline--------------------')
l1 = f.readline()
l2 = f.readline()
l3 = f.readline()
l4 = f.readline()
print(f'第一行:{l1}', end='')
print(f'第二行:{l2}', end='')
print(f'第三行:{l3}', end='')
print(f'第四行:{l4}', end='')

# 关闭文件
f.close()

# with open as f: 语法,自动关闭文件
with open('file/read_example.txt', 'r', encoding='utf-8') as f:
    for e in f:
        print(e)

文件读取练习题

文件内容如下:
文件名:worker_1.txt

itheima itcast python
itheima python itcast
beijing shanghai itheima
shenzhen guangzhou itheima
wuhan hangzhou itheima
zhengzhou bigdata itheima

统计 itheima 出现的次数

with open('D:/worker_1.txt', 'r') as wf:
    # 读取所有的内容
    content = wf.read()
    # 将 \n 替换为 ' ',并且根据 ' ' 切分到 list 内
    content_list = content.replace('\n', ' ').split(' ')
    # 最后通过 count 函数统计
    c = content_list.count('itheima')
    print(f'itheima出现了:{c}次')

二、文件写入

write = open('D:/write_example.txt', 'w', encoding='utf-8')
write.write('Hello world !!!')
write.flush()
write.close()  # close 函数包含了 flush 操作
print('文件写入成功 ~')

三、文件追加

write = open('file/write_example.txt', 'a', encoding='utf-8')
for i in range(10):
    write.write(f'hello {i} world !!!\n')
write.close()
print(f'文件追加完毕 ~')

四、文件操作综合案例

文件综合案例:
备份文件,将 bill.txt 文件中的 “正式” 数据读取出来,
保存到 bill.txt.back 文件内

name, date,money,type,remarks
周杰轮,2022-01-01,100000,消费,正式
周杰轮,2022-01-02,300000,收入,正式
周杰轮,2022-01-03,100000,消费,测试
林俊节,2022-01-01,300000,收入,正式
林俊节,2022-01-02,100000,消费,测试
林俊节,2022-01-03,100000,消费,正式
林俊节,2022-01-04,100000,消费,测试
林俊节,2022-01-05,500000,收入,正式
张学油,2022-01-01,100000,消费,正式
张学油,2022-01-02,500000,收入,正式
张学油,2022-01-03,900000,收入,测试
王力鸿,2022-01-01,500000,消费,正式
王力鸿,2022-01-02,300000,消费,测试
王力鸿,2022-01-03,950000,收入,正式
刘德滑,2022-01-01,300000,消费,测试
刘德滑,2022-01-02,100000,消费,正式
刘德滑,2022-01-03,300000,消费,正式
back_bill = []
with open('D:/bill.txt', 'r', encoding='utf-8') as bill:
    bills = bill.readlines()
    back_bill.append(bills.pop(0))
    for b in bills:
        c = b.find('正式')
        if c > 0:
            back_bill.append(b)

print(f'正式账单内容:{back_bill}')

with open('D:/bill.txt.back', 'a', encoding='utf-8') as back:
    for bill in back_bill:
        back.write(bill)
    back.close()

print('账单备份完成:D:/bill.txt.back')
  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值