Python 从入门到跑路 【五】文件读写

文件读写

我们用windows的读写文本内容,首先要打开txt文件。在python中也需要打开文件,使用的open函数打开文件,并且创建file对象保存在内存中。open函数,第二个参数来指定模式。

  • "r"模式下,文件只能被读取,不能写入内容。
# 第一种 "r"只读模式
file = open("source/python_io.txt","r")
  • "w"模式下,文件内容会被清空,相当于创建一个新文件,可以向文件中写入但不能读取文件内容。(不建议使用)
# 第二种 "w"写模式
file = open("source/python_io.txt","w")
  • "a"模式下,文件内容不会被清空,并且可以往文件最后追加内容,但是不能读取内容。
# 第三种 "a"追加模式
file = open("source/python_io.txt","a")

上面三种只能进行单种操作,接下来介绍既能读,又能写的模式。

以下三种模式,文件能读,也能写。所有的写入,都是在文件末尾进行添加,即使移动光标,也不能在文件中间加入数据。

# 第一种 "r+"读写模式
file = open("source/python_io.txt","r+")
# 第二种 "w+"写读模式
file = open("source/python_io.txt","w+")
# 第三种 "a+"追加读取模式,加上"+"追加模式便可以读取
file = open("source/python_io.txt","a+")

还有一种二进制读写

# "rb"二进制读取模式
file = open("source/python_io.txt","rb")
# "wb"二进制写入模式
file = open("source/python_io.txt","wb")
# 在写入模式中,要先将字符串转成二进制
file.write("哈哈哈".encode())

二进制读写用途

  • 在python3.0中,网络传输只能用二进制
  • 打开二进制文件

file对象常用方法

file.tell() # 获取光标所在位置 ,按字符计数
file.seek(0)# 返回光标位置,0 返回到最开始的地方
file.seekable() # 判断文件是否可以移动光标
print(file.encoding) # 返回文件编码
print(file.flush()) # 文件写入内存的的数据,同步到硬盘上
file.truncate() # 清空文件,指定数之后 清空

小实验
实现类似linux上的进度条

import sys,time

# 打印20个"#"
for i in range(20):
    sys.stdout.write("#") #stdout是标准终端输入,例如屏幕。
    sys.stdout.flush() # 将写入内存"#",刷新到屏幕上
    time.sleep(0.1) # 暂停时间

在没有flush()这个函数时,会将20个”#”全部打印完,在输入到屏幕上。

文件修改

文件修改,同时打开两个文件,一个只读,一个写,边读边写,把满足条件的地方,替换。最后输入到一个新的文件中。即可对文件修改

f = open("source/python_io.txt", "r", encoding="utf-8")
fn = open("source/python.bak", "w")

for line in f:
    if "Persons" in line:
        line = line.replace("Persons", "Persons_table")
    fn.write(line)
f.close()
fn.close() 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值