python08-文件操作

文件

1.只读(r,rb)rb是读字节

2.只写(w,wb)#清除之前的东西,重新写进去内容。

3.追加(a,ab):表示写东西

4.r+  读写

5.W+ 写读

6.a+ 写读(追加写读)

我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了。根据打开方式的不同弄能够执行的操作也会有相应的差异。

f = open(“护士.txt”,mode = "r", encoding="utf-8")

content = f.read() #文件句柄读取内容

print(content)

f.close()    #关闭句柄

文件路径

相对路径和绝对路径

相对路径:相对于你当前程序所在的文件夹

绝对路径:1.从磁盘根目录寻找 2.互联网上的一个绝对路径

../ 表示上一层文件夹(相对于当前所在的文件夹)

f = open(“小模特”,mode = “w” encoding=“utf-8”) #w模式,写入之前会清除掉原来的内容,如果是a模式,在原来的基础上进行追加内容

f.write("杜十娘”)

f.flush()

f.close()

rb模式:处理非文本文件使用

f = open(“小护士”,mode = “rb”)

bs = f.read()

print(bs)                       #打印出来的是字节

print(bs.decode("utf-8")) #需要解码,打印出来的是文件的内容

f.close()

wb模式:处理非文本文件使用

f = open(“小护士”,mode = “rb”)

bs = f.write("你好啊".encode("utf-8"))

f.close()

r+模式:先读后写,R+模式,默认情况下,光标在文件的开头,必须先读后写才是安全的,如果是先写后读,会出错

1.  f = open(“老师点名”,mode="r+",encoding = "utf-8")

s = f.read()

f.write("周杰伦”)

print(s)

f.close()

2. f = open("精品",mode="r+" ,encoding = "utf-8")

s = f.read(3)  #读3个字符,现在的光标应该在3个字节之后,但是r+模式下,不管你前面读了几个,后面去写,都是在末尾写

f.write(“马虎疼”)#在没有任何操作之前进行写,即在开头写;如果读取了一些内容后在写,写入的是最后

print(s)

 

W+模式:w操作清空原来的内容

f = open(“写读”,mode =“w+”,encoding="utf-8") 

f.write("今天天气”)

f.seek(0)

s = f.read()

print(s)  #移动光标才能打印出来“今天天气”

f.flush()

f.close()

光标:

seek(n)光标移动到n位置,注意,移动的单位是byte,所以如果是utf-8的中文部分要是3的倍数。

移动到开头:seek(0)

移动到结尾:seek(0,2)seek的第2个参数表示的是从哪个位置进行偏移,默认是0,表示开头,1表示当前位置,2表示结尾。

tell()告诉当前光标的位置

#将吃的文件中的肉换成菜,做法是新建吃的副本文件,改完后,把吃的文件删除掉,并将吃的副本文件重命名为吃的。

import OS

with open ("吃的",mode="r",encoding="utf-8") as f1,open("吃的_副本",mode=“w”,encoding=“utf-8”) as f2:

    s =f1.read()

    ss=s.replace("肉","菜")

    f2.write(ss)

os.remove(“吃的”)

os.rename("吃的副本","吃的)

 

readline()和readlines()

with open ("吃的",mode="r",encoding="utf-8") as f1,open("吃的_副本",mode=“w”,encoding=“utf-8”) as f2:

for line in f1:

    s = line.replace("肉”,"菜”)

    f2.write(s)

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值