python中文件的读和写操作

版权声明:本文为博主原创文章,未经博主允许不得转载,博客地址:https://blog.csdn.net/weixin_43295278 https://blog.csdn.net/weixin_43295278/article/details/83088320

一、打开文件

data = open("yesterday",encoding="utf-8").read()
# python默认的打字符编码是unicode,处理不了gbk,但是utf—8可以

print(data)

ps:这边的yesterday文件是一首英文歌的歌词

在打开的时候,一定要转码,否则会乱码:encoding="utf-8"
在这里插入图片描述
二、读取前几行
会用到read( )和readline( )方法

f = open("yesterday",encoding="utf-8")  # 文件句柄,方法和1类似
# data = f.read()   # 光标在最后面
# print(data)
# f.readline()   # 读取一行,只适合读小文件
for i in range(5):
    print(f.readline())    # 循环之后读取四行

在这里插入图片描述
三、读取前几行(优化版)
用到了迭代器,所以不会像二一样占用太大的内存,最后只会占用一行的内存

f = open("yesterday",encoding="utf-8")
# 实现前九行的输入,并且在第九行输入分割线
count = 0
for line in f:
    if count == 9:
        print("--------分割线-------")
        count += 1
        continue
    print(line)    # 迭代器!效率最高的循环方式,比2效率高是因为读完一行就删一行
    count +=1

在这里插入图片描述
四、关于文件的方法
python不是直接调用所有文件,而是调用操作系统的接口I/O,通过接口来调用文件


# 1.tell()方法:光标的位置
f = open("yesterday",encoding="utf-8")
print("1:",f.tell())    # 把指针的位置表示出来,0
print("2:",f.readline())
print("3:",f.tell())    # 读完一行字符之后光标的位置
print("4:",f.readline(3))
print("5:",f.tell())    # 读完三行字符之后光标的位置

#2.seek()方法: 光标回到第几行
f.seek(0)
print("6:",f.tell())   # 光标重新回到了开始

# 3.encoding  # 打印文件的编码类型
print("7:",f.encoding)

# 4.fileno()  可用于底层操作系统的 I/O接口操作。
print("8:",f.fileno())

# 5.flush()
print(f.flush())  # 实时刷新文件内容

在这里插入图片描述
其实在学习python基础的时候,pycharm的联想功能非常重要!

小福利:

打开文件的模式有:

r,只读模式(默认)。
w,只写模式。【不可读;不存在则创建;存在则删除内容;】
a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

“+” 表示可以同时读写某个文件
r+,可读写文件。【可读;可写;可追加】
w+,写读
a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)一般是在跨平台的时候需要处理二进制文件,比如Windows到linux;视频文件也需要处理二进制文件

rb —读,以二进制模式打开,此时不需要即encoding,
wb—写,此时需要加入encoding
在这里插入图片描述
ab

猜你喜欢

转载自blog.csdn.net/weixin_43295278/article/details/83088320