1、打开文件
使用Python内置函数 open() 可以打开指定的文件,用于对文件进行读取,修改或添加内容。
open() 函数的语法如下所示;
open(filename[,mode][,encoding])
open() 函数公有8个参数,其中最常用的有3个,分别是filename(文件名称)、mode(文件打开模式)和encode(文件编码方式)。
其中filename是不可以省略的,其他参数都可以省略,省略时会使用默认值。
代码举例:
1、打开同级的txt文档
f=open('my_text01.txt')
content=f.read()
print(content)
f.close()
效果展示:
2、访问绝对路径下的文档内容
f=open('D:pythonprojectleassonmy_text02.txt')
content=f.read()
print(content)
f.close()
效果展示:
3.使用打开模式
打开文件时如果不指定模式,那么默认为’r’,以只读方式打开文件。此外,还可以显式指定打开模式
读取使用 ‘r’、
写入使用 ‘w’、
追加使用 ‘a’。
4.文件读操作
代码展示:
可以通过写操作自己创建txt文件
f=open('my_text02.txt','w')
f.write('this is my table')
f.close()
效果展示:
可以在相对路径下通过写操作创建txt文件
f=open('D:pythonprojectleassonmy_text03.txt','w')
f.write('this is my_text03.txt done')
f.close()
4.打开一个二进制的图片,并复制一份
代码展示:
f=open('01.jpg','rb')
content=f.read()
f2=open('02.jpg','wb')
f2.write(content)
f2.close()
f.close()
效果展示;
5. 文件打开模式作用
r:只读模式
只读,不可写。打开时光标自动定位到开头位置。
w:只写模式
只写,不可读。打开时自动清空原文档a:追加模式
只写,不可读。打开时不清空原文档,光标自动定位到文档末尾。
r+:读写模式
先读后写。打开文档时不清空原内容,光标定位正在开始位置。读完后光标会移到文档末尾,所以写的时候是追加在文档最后的。不会覆盖原内容。
如果以“r+”模式打开,但是先写后读,那么写入的内容会覆盖原内容,读取时从写结束位置开始读。如果原文档内容小于新写入的,那么全部被覆盖,读到的为空。
如果原文档内容大于新写入的,那么读到的内容为原文档剩下的内容。w+ :写读模式
先写后读。打开文档即清空原内容,从文档开头写起,写完后光标自动移到文档末尾,此时进行读取,内容为空。需要将光标移到首位,f.seek(0)。
如果以“w+”模式打开,先进行读操作,读到的内容也是为空,因为打开即被清空了。a+ :追加写读模式
先写后读。追加在原文档末尾,不会清空原内容,写完后光标移到文档末尾,此时进行读取,内容为空。需要将光标移到首位,f.seek(0)。
如果以“a+”模式打开,先进行读操作,读到的内容也是为空,因为打开即把光标定位在文档末尾。
6.文件写操作
代码展示:
打开时自动清空原文档,然后开始写
f=open('my_text02.txt','w')#把原来写的文字替换掉了
f.write('123')
f.close()
效果展示:
7、a追加模式
只写,不可读。打开时不清空原文档,光标自动定位到文档末尾
代码展示;
f=open('my_text02.txt','a')#在原txt文件后面追加文字
f.write('asd')
f.close()
效果展示:
8、r+读写模式
读写操作,在原文件内先读,后写,在后面追加文字,不改变原文件
代码展示:
f=open('my_text03.txt','r+')#读写操作,在原文件内先读,后写,在后面追加文字,不改变原文件
content=f.read()
print(content)
f.write('123')
print(f.read())
f.close()
效果展示;
9.w+读写操作
读写操作,先写后读,打开文件,原文件被清空,在执行写操作
代码展示;
f=open('my_text02.txt','w+')#读写操作,先写后读,打开文件,原文件被清空,在执行写操作
f.write('ASD')
print(f.read())
f.close()
效果展示;
10.读写操作,先写后读,打开文件时,原文件被清空,在执行写操作
f=open('my_text02.txt','w+')#读写操作,先写后读,打开文件时,原文件被清空,在执行写操作
f.write('awer')
print(f.read())
f.close()
效果图;
11.a+追加模式
追加在原文档末尾,不会清空原内容,写完后光标移到文档末尾,此时进行读取,内容为空。需要将光标移到首位,f.seek(0),才能完整地读。
代码展示
先写后读
f=open('my_text02.txt','a+')
f.write('awer')
f.seek(0)#写完之后,光标移动到首个位置,然后再执行读操作
content=f.read()
print(content)
f.close()
效果展示;
12.a+追加模式先读后写
代码展示;
f=open('my_text02.txt','a+')
content = f.read()
print(content)
f.write('nmdfg')
f.close()
效果图;
13、读取txt文件的编码格式
代码展示
f=open('my_text01.txt','r',encoding='utf-8')
print(f.encoding)
f.close()
运行结果;
14.打开文件的另外一种方式,避免因为忘记写close(),而造内存损耗
with open('my_text01.txt','r') as f:
print(f.read())