python文件操作

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文

件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,

新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存

在,创建新文件。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结

尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进

行写入。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文

件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时

会是追加模式。如果该文件不存在,创建新文件用于读写。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存

在,创建新文件。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结

尾。如果该文件不存在,创建新文件用于读写。

1.seek(offset[, whence])

offset -- 开始的偏移量,也就是代表需要移动偏移的字节数

whence:可选,默认值为 0。

给offset参数一个定义,表示要从哪个位置开始偏移;

0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

  1. f.tell() 字节指针定位

  1. 写入

f = open("test.txt","w",encoding="UTF-8")

#写法一:

f.write("IT私塾\n高效学习\n学以致用\n") #通过换行符实现输出多行效果

#写法二:

content = ["IT私塾\n","高效学习\n","学以致用\n"]

f.writelines(content) #通过writelines一次性写出列表的每个元素

#写法三:

content = ["IT私塾","高效学习","学以致用"]

f.write("\n".join(content)) #使用字符串的join函数,为每个元素添加换行

f.close()

f = open("test2.txt","w",encoding="UTF-8")

f.write("IT私塾,高效学习")

f.close()

3.读取

#-----------------------------------------------------------

f = open("test2.txt","r",encoding="UTF-8")

#data = f.read() #没有指定读取的字符数,表示读取文件中所有的数据

#print(data)

data = f.read(2)

print("读取到的文件内容:",data)

data = f.read(4) #文件读取过程中的指针的定位会向后移动指定"字符数"

print("读取到的文件内容:",data)

f.close()

f = open("test2.txt","r",encoding="utf-8")

content = f.readlines()

print(content,type(content)) #输出的类型为列表类型(list)

#遍历列表中的内容,并在前面添加行号

#写法一:

# i = 1

# for data in content:

# print(f"{i}:{data}",end="")

# i+=1

#写法二:

for i,data in enumerate(content):

print(f"{i}:{data}", end="")

f.close()

6.3.1 flush() 刷新缓冲区

文件写入过程:

数据 --> 缓冲区(内存中) --> 文件中(硬盘上)

【flush函数】 刷新(清空)缓冲区

6.3.2 truncate() 截断文件

trancate函数,从指针位置到结束的字符全部删除掉,只保留指针之前的内容。

with open("luoluo.jpg","rb") as fin:

with open("luoluo_copy3.jpg","wb") as fout:

for data in fin:

fout.write(data)

#简单写法: open 之间可以用逗号,隔开

with open("luoluo.jpg","rb") as fin,open("luoluo_copy4.jpg","wb") as fout:

for data in fin:

fout.write(data)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值