【学Python后赚大钱】文件读写

此文章仅为自己学习记录之用,如有不正确的地方欢迎指正,非常感谢

目录

导读:

1.open函数

2.读取/写入文件内容

2.1.读取函数read/readline/readlines

2.2.写入函数write

3.关闭文件


导读:

说把大象装冰箱?拢共分几步?

1.把冰箱门开开

2.把大象装进去

3.把冰箱门关上

我们文件读写也是如此,就3步

a.打开文件:调用open函数,返回一个File对象

b.读写:调用File对象的read和write方法

c.关闭文件:调用File对象的close方法关闭文件

1.open函数

用法:

f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

字符释义:

f-open函数返回的文件对象,也可以叫文件描述符或句柄

file-要打开的文件的路径

mode-指定文件打开的模式,这个参数决定了我们可以怎样操作文件

打开文件的模式有

r只读模式,从头开始读取
w写入模式,文件不存在则新建文件,文件存在则清空内容,从头开始写入
x创建模式,文件不存在则会新建文件,文件存在则追加到文件中
a追加模式,文件不存在则新建文件,文件存在则保留文件内容,从内容的结尾开始写入
b文件以二进制模式打开,不可单独使用,需要与r/w/a连用,如rb就是以二进制模式读取
t文件以文本模式打开,文件需要是文本文件。不可单独使用,需要与r/w/a连用。是默认的模式,即只有r/w/a也默认是文本模式打开。
+可以同时读写文件。不可单独使用,需要与r/w/a连用。如r+则代表可以读写文件,但是写入时也是从头开始写入,会覆盖原有位置的内容。w+也可以读写,但是会将原内容删除。a+也可以读写,与a对应是从末尾开始读写。也可以与b连用,如r+b等

buffering-缓冲策略选择,默认为1,初学者可暂时不用理会

encoding-打开文件时所采用的编码格式。默认为None,表示的是使用系统默认的编码格式例如 'utf-8'

errors-用于指定在文件读取或写入时遇到编码错误时的处理方式,一般有以下几种

默认值/None遇到编码错误的时候抛出一个UnicodeError异常
ignore忽略无法解码或编码的字符,直接跳过
replace用于指定字符(默认是"?")替代无法解码或编码的字符
strict遇到无法解码或者编码的字符的时候抛出一个UnicodeError异常

newline-指定在读取和写入文件时使用的换行符。它的默认值为 None,表示使用系统默认的换行符。

closefd-用于指定关闭文件时是否关闭文件描述符,也就是上面的f;True就是关闭,Flase就是关闭文件时不会关闭文件描述符。默认值为True

opener-用于指定自定义的文件打开器。如果不指定值则使用默认的文件打开器

2.读取/写入文件内容

2.1.读取函数read/readline/readlines

用法:f.read(size)

作用:返回部分或者整个文本的内容。

字符释义:f-文件描述符;size-返回内容的大小,可以不指定,不指定就默认返回整个文本的内容;

返回值:字符串

用法:f.readline(size)

作用:返回文本中一行部分或全部的内容

字符释义:f-文件描述符;size-返回内容的大小,可以不指定,不指定就默认返回一行,指定的大小若不满一行就按指定的来,超过一行则返回一行;

返回值:字符串

用法:f.readlines()

作用:返回文本中所有内容

字符释义:f-文件描述符

返回值:字符串列表,其中列表中一个元素即为一行的内容

:读取文本时如果一次没有读完,再一次读取时不会从头开始,而是从上次结束的位置开始。

2.2.写入函数write

用法:f.write(str)

作用:往文本中写入内容

字符释义:f-文件描述符;str-字符串

3.关闭文件

用法:f.close()

作用:关闭文件

字符释义:f-文件描述符

下面是一个简单的示范

注意啦!!!一定要关闭文件!!!虽然我也不指定会发生什么哈哈哈哈哈,但是为了电脑着想,我劝你不

如果害怕自己忘记可以用另一种方式,会自动关闭,就可以不用close了

with open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) as f:
    f.read()
    

下面是一些简单的效果,大家可以自己多试试不同的效果~

这是写的效果

f = open('D:/shifan.txt','w',encoding='utf8')
f.write('111111111\n22222222222\n33333333333')
f.close()

运行上面的代码,你的D盘就会多出一个这样的txt

这是读的效果

f = open('D:/shifan.txt','r',encoding='utf8')
contxt1 = f.read(12)
contxt2 = f.read(12)
f.close()
print(contxt1)
"""
contxt1返回
111111111
22
"""
print(contxt2)
"""
contxt1返回
222222222
33
"""
f1 = open('D:/shifan.txt','r',encoding='utf8')
contxt3 = f1.readline(15)
f1.close()
print(contxt3)#返回 111111111
f2 = open('D:/shifan.txt','r',encoding='utf8')
contxt3 = f2.readlines()
f2.close()
print(contxt3)#返回 ['111111111\n', '22222222222\n', '33333333333']

其它的自己试试叭~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值