我是靠谱客的博主 健康钢笔,最近开发中收集的这篇文章主要介绍python简单的文件读写操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们想要对一个文件进行读写操作,就要先知道该文件的
绝对路径,打开文件就要使用python内置得到open函数
open函数有常用的三个参数,分别表示:文件路径(file),
打开文件的模式(mode),编码格式(encoding)。
打开文件的模式基础的有:'r','w','a'分别表示 只读,
只写,追加写。其中'w'模式下,新写入的内容会把原先
文件中的内容替换掉。'a'模式下,会在光标处添加我们要
写入的内容,假如光标在文件原先的内容中,那新添加的
内容将会把光标后面原有的等量文件内容替换掉,假如光标在原
有文件内容末尾(默认),那只会新追加新的内容,不会替换
掉原有。
对文件进行读取操作我们用read函数,写入操作我们使用
write函数。对文件操作完成之后,我们还需要对文件进行
关闭操作使用close函数
看几个小例子,第一个是对文件进行读取操作:
path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'r',encoding='utf-8')
a = file_name.read()
print(a)
file_name.close()
执行结果:
G:PyprojectvenvScriptspython.exe G:/Pyproject/pachong/pachong.py
ningshuang is very cute
shuang sister is very cute
这是对文件进行读取操作,将整篇文章读取出来
假如我们想要读一行呢,那就是用readline函数:
path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'r',encoding='utf-8')
a = file_name.readline()
print(a)
file_name.close()
执行结果:
G:PyprojectvenvScriptspython.exe G:/Pyproject/pachong/pachong.py
ningshuang is very cute
假如我们想要多读取几行呢,那就使用readlines函数:
G:PyprojectvenvScriptspython.exe G:/Pyproject/pachong/pachong.py
['ufeffningshuang is very cuten', 'shuang sister is very cute']
读取的结果是生成了一个列表,列表中的每一个元素
代表一行的内容。
第二个例子是对文件进行写入操作('w'模式):
我们先看一下文件的原有内容:
ningshuang is very cute
shuang sister is very cute
path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'w',encoding='utf-8')
file_name.write('the eyes of ningshuang are very big')
file_name.close()
执行后,文件内容变成了:
the eyes of ningshuang are very big
原有内容被替换。
至于你想写入多行时,就相当于把readlines的操作
反过来:
path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'w',encoding='utf-8')
L = ['the eyes of ningshuang are very bign','I like shuang sister very muchn']
file_name.writelines(L)
file_name.close()
执行后,文件内容:
the eyes of ningshuang are very big
I like shuang sister very much

第三个例子是对文件内容进行增加操作:

path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'a',encoding='utf-8')
file_name.write('the weather of today is very terrible')
file_name.close()
执行后,文件内容:
the eyes of ningshuang are very big
I like shuang sister very much
the weather of today is very terrible

python还提供了两个函数seek和tell函数,前者
告诉你读写操作的起始位置,后者告诉你光标当
前的位置,当然,只用这两个函数时,一般是在纯
英文环境下,否则执行的结果可能不是太准确,
我们测试一下:

path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'r',encoding='utf-8')
file_name.seek(3)
print(file_name.read())
file_name.close()
执行结果是:
G:PyprojectvenvScriptspython.exe G:/Pyproject/pachong/pachong.py
eyes of ningshuang are very big
I like shuang sister very much
the weather of today is very terrible
我们从第三个字符之后开始读取,所以没有the。
path = r'C:UsersDELLDesktopabc.txt'
file_name = open(path,'r',encoding='utf-8')
file_name.seek(5)
print(file_name.tell())
file_name.close()
执行结果:
G:PyprojectvenvScriptspython.exe G:/Pyproject/pachong/pachong.py
5
我们打算是从第五个字符之后进行操作,调用tell函数
得知仙子光标的位置是5
至于写和写增加都是类似的套路。上面也有描述。

我们再来看一下二进制文件的读写操作,就是在上面
三种模式加个b,也就是’rb’,’wb’,’ab’,当我们想将
字符串写入文件时,需要先将字符串转换成二进制 形
式,使用encode函数。对文件,图片,视频都可以进
行二进制的读取操作。

我们可以 在’rb’,’wb’上加一个+即’rb+’,’wb+’ 各自都可
以进行二进制的读写操作。

由于文件读写时都有可能产生IOError,一旦出错,后面
的f.close()就不会调用。所以,为了保证无论是否出错都
能正确地关闭文件,我们可以使用try … finally来实现:

try:
f = open('/path/to/file', 'r')
print(f.read())
finally:
if f:
f.close()

但是每次都这么写实在太繁琐,所以,Python引入
了with语句来自动帮我们调用close()方法:

with open('/path/to/file', 'r') as f:
print(f.read())

调用read()会一次性读取文件的全部内容,如果文件有
10G,内存就爆了,所以,要保险起见,可以反复调用
read(size)方法,每次最多读取size个字节的内容。另外
,调用readline()可以每次读取一行内容,调用readlines()
一次读取所有内容并按行返回list。因此,要根据需要决定
怎么调用。

如果文件很小,read()一次性读取最方便;如果不能确定
文件大小,反复调用read(size)比较保险;如果是配置文
件,调用readlines()最方便:

for line in f.readlines():
print(line.strip()) # 把末尾的'n'删掉

还有一些有关文件操作的函数我就不再逐一介绍了。

最后

以上就是健康钢笔为你收集整理的python简单的文件读写操作的全部内容,希望文章能够帮你解决python简单的文件读写操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部