Python学习_我该怎么读取文件中的数据并操作文件

数据存储在文件中使用很方便,可我该怎么读取文件呢?
jiangxue.txt文件中存储以下内容:

千山鸟飞绝,万径人踪灭。
孤舟蓑笠翁,独钓寒江雪。

1、读取文件
假设我在文件中存储一首‘江雪’的唐诗

#假设我将‘江雪’这首诗存储在'jiangxue'程序同文件夹下的txt文档中
with open('jiangxue.txt') as file_jx:
    jiangxue=file_jx.read()
    print(jiangxue)

输出:
千山鸟飞绝,万径人踪灭。
孤舟蓑笠翁,独钓寒江雪。

备注:
首先使用open()打开文件并存储在一个变量中,然后使用read()读取文件中的内容并作为字符串进行存储
使用with关闭文档,在文档使用完后会自动关闭文档
打印时有时会在最后一行会出现空行,可以使用rstrip()删除末尾的行去除空行
open()的参数可以是一个路径

2、逐行读取文件中的内容

#假设我将‘江雪’这首诗存储在'jiangxue'程序同文件夹下的txt文档中
file_path='jiangxue.txt'
with open(file_path) as file_jx:
    for line in file_jx:
        print(line.rstrip())

输出:
千山鸟飞绝,万径人踪灭。
孤舟蓑笠翁,独钓寒江雪。

备注:使用for循环逐行读取文件中的内容,你也可以使用readlines()读取每一行,你把rstrip()去掉测试发现第一行和第二行中间出现了一个空行

#假设我将‘江雪’这首诗存储在'jiangxue'程序同文件夹下的txt文档中
file_path='jiangxue.txt'
with open(file_path) as file_jx:
    lines=file_jx.readlines()
for line in lines:
    print(line)

输出:
千山鸟飞绝,万径人踪灭。

孤舟蓑笠翁,独钓寒江雪。

备注:with 会关闭打开的文档,当你想在with代码块外部使用读取的内容时,你可以将读取的内容存储在列表中

3、使用读取的内容

  • 加入我现在想把读取的内容在一行显示
file_path='jiangxue.txt'
with open(file_path) as file_jx:
    lines=file_jx.readlines()
jiangxue=''
for line in lines:
    jiangxue +=line.strip()

print(jiangxue)

输出:
千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪。

  • 假如,我现在只想打印这首诗的第一句“千山鸟飞绝”,可以使用切片操作
file_path='jiangxue.txt'
with open(file_path) as file_jx:
    lines=file_jx.readlines()
jiangxue=''
for line in lines:
    jiangxue +=line.strip()
print(jiangxue[0:5])

输出:千山鸟飞绝
假如现在猜诗词,看你猜的句子是否正确,加入给你诗词的第一、二、四句让你猜第三句,并判断是否正确

file_path='jiangxue.txt'
with open(file_path) as file_jx:
    lines=file_jx.readlines()
jiangxue=''
for line in lines:
    jiangxue +=line

cai_jx='孤舟蓑笠翁'
if cai_jx in jiangxue:
    print('恭喜你答对了!')
else:
    print('很遗憾,答错了!')

输出:恭喜你答对了!

练习
将上边的诗词做成一个填空题:

file_path='jiangxue.txt'
with open(file_path) as file_jx:
    lines=file_jx.readlines()
jiangxue=''
for line in lines:
    jiangxue +=line

print(jiangxue.replace('孤舟','____'))

输出:
千山鸟飞绝,万径人踪灭。
____蓑笠翁,独钓寒江雪。
4、将内容写入文件
我们将“千山鸟飞绝”写入一个文件qian.txt

#首先将文件写入qian.txt
file_path='qian.txt'
with open(file_path,'w') as file_q:
    file_q.write('千山鸟飞绝')
#验证是否已写入文件
with open(file_path) as file_w:
    qian=file_w.read()
print(qian)

输出:千山鸟飞绝

备注:为什么没有在第一个with 代码块中读取文件呢,是因为第一个open有一个‘w’参数,代表只能写,不能读,如果想直接读就把’w’换成‘r+’,‘r’代表只读,默认是不写此参数
你也可以查看一下相同的文件夹下是不是自动生成了一个qian.txt文件
写入文件时也可以将’w’换成‘a’,‘w’会将文件先清空再写入,而‘a’不会清空文件

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值