文件

文件操作

文件模式

当你想对文件进行操作的时候,必须进入相应的文件模式中

模式名称描述
r读方式打开文件.文件的指针将会放在文件的开头这是默认模式
r+(常用)打开一个文件用于读写文件指针将会放在文件的开头
w打开一个文件只用于写入如果该文件已存在则将其覆盖(一旦进入此模式,即清空文件)。如果该文件不存在,创建新文件。
w+打开一个文件用于写读如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于追加读如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写

打开,关闭文件

函数:文件 = open(文件路径,文件模式,encoding=字符编码),打开并接收文件
既然打开文件,就必须关闭文件
函数:文件.close(),关闭文件

读取文件

必须进入有可读的模式
每当读取完成后,光标就跳到你读取字节的最后;当你下面又开始读取的时候,在光标的位置开始读取,而不是在文件的开头.如果想在开头读取,必须调整光标.

读取指定的字节

函数:文件.read(读取的字节数量),
默认读取全部文件数据,可以指定从文件读取的字节数量
一个汉字代表一个字节
一个英文代表一个字节
一个换行符代表一个字节

读取文件的一整行

函数:文件.readline()

读取文件的多行

函数:文件.readlines()
读取全部,并且以列表的形式返回每一行.读取的文件会全部储存到内存中.所以一般不适合用到大文件里
例如:

f = open("文件,春晓", "r", encoding="utf8")
print(f.readlines())

f.close()

>>>['春晓\n', '唐代:孟浩然\n', '春眠不觉晓,处处闻啼鸟。\n', '夜来风雨声,花落知多少。']
直接遍历文件

使用for循环遍历文件,例如:for i in 文件:
这是python内部将文件做成了一个迭代器,用一点,取一点

写入文件

1.必须进入有可写的模式
2.在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
3.当想对文件进行换行操作时,必须输入换行符
4.光标在哪,文件写在哪

写入字符串

函数:文件.write(写入的字符串) # 数值会返回你输入的字节长度
当不想清空文件数据,在文件最后追加数据时,需进入追加模式,“a”在这里插入代码片

修改文件

因为电脑的内存机制,所以不能直接进行文件修改.可以另辟蹊跷.
方法:复制一个新的文件,把数据一行一行遍历储存进去,在要改的那一行进行操作
例如:
此方法也可以进行添加,修改,删除文件的数据

f_read = open("文件,春晓", "r", encoding="utf8")  #打开要修改的文件,以便进行遍历
f_write = open("文件,春晓2", "w", encoding="utf8")  #新建一个文件,遍历一行数据时,储存进去

number = 1    #创建标志位
for line in f_read:  #进行遍历
    if number == 4:   #判断是否在修改的那一行
        f_write.write("Hello Woeld\n")   #修改文件
    else:   #不在修改的那一行,直接把数据加到另一个文件中
        f_write.write(line)
    number += 1   

删除文件

截断文件

作用:清空光标后面的所有的数据
函数:f.truncate()

其他文件方法

检测光标位置

函数:文件.tell()
在UTF-8中:一个英文走一个光标,一个中文走三个光标.

调整光标位置

函数:seek(调整的光标位置)

把缓冲区数据立刻加到文件中

函数:文件.flush()

检测文件是否连接设备

作用:检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False。
函数:文件.isatty()

with语句

可以同时管理多个文件对象,并且不用退出文件,语句自动退出
语法结构:with open("文件","模式") as 文件变量名, open("文件名","模式") as 文件变量名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值