12、python文件的操作
前言:本文主要介绍python中文件的操作,包括打开文件、读取文件、写入文件、关闭文件以及上下文管理器。
一、打开文件
Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出一个OSError。
使用方法:open(参数1,参数2,参数3)
参数1:文件名
参数2:打开的模式
参数3:编码方式(encoding = "utf-8")
模式 | 描述 |
---|---|
r | 以只读方式打开文件,文件指针默认放在文件开头 |
rb | 以二进制格式打开一个文件用于只读,指针默认放在文件开头,一般用于非文本文件(如图片等) |
r+ | 以二进制格式打开一个文件用于读写,指针默认放在文件开头 |
rb+ | 打开一个文件用于读写,文件指针默认放在文件开头,一般用于非文本文件(如图片等) |
w | 打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果不存在,创建新文件 |
wb | 以二进制格式打开一个文件用于只读,如果该文件已存在则将其覆盖,如果不存在,创建新文件,一般用于非文本文件(如图片等) |
w+ | 打开一个文件用于读写,如果该文件已存在则将其覆盖,如果不存在,创建新文件 |
wb+ | 以二进制格式打开一个文件用于读写,如果该文件已存在则将其覆盖,如果不存在,创建新文件,一般用于非文本文件(如图片等) |
a | 打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾(也就是说,新的内容将会被写到已有内容之后)如果不存在,创建新文件进行写入 |
ab | 以二进制格式打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾(也就是说,新的内容将会被写到已有内容之后)如果不存在,创建新文件进行写入 |
a+ | 打开一个文件用于读写,如果文件已存在,文件指针会放在文件结尾,文件打开时会是追加模式,如果不存在,创建新文件用于读写 |
ab+ | 以二进制格式打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾,如果不存在,创建新文件用于读写 |
file = ‘test.txt‘ # 文件与当前py文件在同一个目录下 # r防转义,文件与当前py文件不在一个目录下时可以直接使用详细的地址,如果在上一个目录怎么写?思考一下 file2 = r‘D:\myworkspace\test\test.txt‘ file = open(file, ‘r‘, encoding=‘utf-8‘) # 以读取方式打开文件 print(file.read()) # 读取文件的内容 file.close() # 打开文件使用完后记得关闭文件
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test.py 这是一个测试用的txt文本 Process finished with exit code 0
二、关闭文件
close()方法,在上面打开文件例子中已经举例
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法,关闭文件
三、写入文件
1.写入单行write
file = open(‘test.txt‘, ‘w‘, encoding=‘utf-8‘) # 以写入方式打开文件 file.write(‘今天是星期四‘) file.close()
运行后查看text.txt文件
2.写入多行writelines
file = open(‘test.txt‘, ‘w‘, encoding=‘utf-8‘) # 以写入方式打开文件 # 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符,注意最后一行不需要加换行符,不然文件最后会有一行空白行 file.writelines([‘今天是星期四\n‘, ‘明天是星期五\n‘, ‘后天是星期六‘]) file.close()
运行后查看text.txt文件
3.保存文件
file.flush()
四、读取文件
1.读取全部内容 read()
file = open(‘test.txt‘, ‘r‘, encoding=‘utf-8‘) # 以写入方式打开文件 res1 = file.read() print(res1)file.close()
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test.py 今天是星期四 明天是星期五 后天是星期六 Process finished with exit code 0
2.读取一行 file.readline()
file = open(‘test.txt‘, ‘r‘, encoding=‘utf-8‘) # 以写入方式打开文件 res2 = file.readline() print(res2)file.close()
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test.py 今天是星期四 Process finished with exit code 0
3.按行读取所有内容 file.readlines()
file = open(‘test.txt‘, ‘r‘, encoding=‘utf-8‘) # 以写入方式打开文件 res3 = file.readlines() # 一行保存为一个元素,组成一个列表,每行(除了最后一行)后面会带有一个换行符 print(res3) file.close()
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test.py [‘今天是星期四\n‘, ‘明天是星期五\n‘, ‘后天是星期六‘] Process finished with exit code 0
五、文件定位(了解即可)
tell()方法告诉你文件内的当前位置;就是说,文件指针会在上次文字结尾后面,文件指针相当于我们阅读时,鼠标光标
seek(offset, from)方法改变当前文件的位置
offset:表示要移动的字节数(正数:忘文件结尾方向移动,负数:往文件开始方向移动)
from:指定开始移动字节的参考位置,默认为1
0:参考位置为文件开头
1:参考位置为当前所在位置
2:参考位置为文件结尾
file = open(‘test.txt‘, ‘r‘, encoding=‘utf-8‘) print(file.tell()) # 返回此时光标的位置(查看指针) file.seek(0)) # 将文件光标移动到起始位置 file.seek(70)) # 将文件光标移动到70的位置
六、上下文管理器
with:(推荐使用)
开启open返回文件句柄对象的上下文管理器(执行完with里的代码语句之后,会自动关闭文件)
with open(file="text.txt", mode="r", encoding="utf-8") as f: c = f.read() print(c)
作者:miki_peng
出处:https://www.cnblogs.com/miki-peng
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,请大家尊重原创,如要转载,请在文章页面明显位置注明出处,否则保留追究法律责任的权利。
相关推荐
拼命工作好好玩 2020-08-03
swiftwwj 2020-07-21
云中舞步 2020-11-12
杨德龙 2020-11-11
JohnYork 2020-10-16
wangzhaotongalex 2020-09-22
xiaoseyihe 2020-11-16
不要皱眉 2020-10-14
Crazyshark 2020-11-13
K先生 2020-11-10
momode 2020-09-11
思君夜未眠 2020-09-04
点滴技术生活 2020-08-21
MaggieRose 2020-08-19
kevinweijc 2020-08-18
wintershii 2020-08-17
vapaad 2020-08-17
wera00 2020-08-17
移动开发与培训 2020-08-16