Python文件的基本操作
- 文件的基本操作
- 文件的读写模式
- 文件的读写操作相关的方法
- 文件的操作模式
- 文件的练习题
文件的基本操作
1. 我们能够操作哪些类型的文件:.txt 没有后缀名的文件# 我们现在不能操作word、Excel、PPT等文件暂时不能够操作numpy、pandas等模块可以操作2. 如何操作文件"""三步法:1. 打开文件(open)2. 读或者写3. 关闭文件"""# open('要操作的文件路径', '读写模式', '字符编码')文件的路径:相对路径绝对路径'D:\Python27\day10\a.txt'# 当路径中出现了字母和斜杠的组合会产生一些特殊的含义,所以我们应该给去掉:r'D:\Python27\day10\a.txt'f= open(r'D:\Python27\day10\a.txt', 'r', encoding='utf-8') # \n \t# 返回的是文件句柄print(f) # <_io.TextIOWrapper name='D:\\Python27\\day10\\a.txt' mode='r' encoding='utf-8'># 2. 读取文件# helloworldprint(f.read()) # 类似于是文件的内置方法# 3. 关闭文件f.close()'''第二种方式来操作文件'''# with上下文管理器打开文件!# as:起别名# 它的特点就在于:能够自动关闭文件with open('a.txt', 'r', encoding='utf-8') as f: # f=open('a.txt', 'r', encoding='utf-8') f.close()print(f.read())1. 我们能够操作哪些类型的文件: .txt 没有后缀名的文件 # 我们现在不能操作word、Excel、PPT等文件暂时不能够操作 numpy、pandas等模块可以操作 2. 如何操作文件 """ 三步法: 1. 打开文件(open) 2. 读或者写 3. 关闭文件 """ # open('要操作的文件路径', '读写模式', '字符编码') 文件的路径: 相对路径 绝对路径 'D:\Python27\day10\a.txt' # 当路径中出现了字母和斜杠的组合会产生一些特殊的含义,所以我们应该给去掉: r'D:\Python27\day10\a.txt' f= open(r'D:\Python27\day10\a.txt', 'r', encoding='utf-8') # \n \t # 返回的是文件句柄 print(f) # <_io.TextIOWrapper name='D:\\Python27\\day10\\a.txt' mode='r' encoding='utf-8'> # 2. 读取文件 # helloworld print(f.read()) # 类似于是文件的内置方法 # 3. 关闭文件 f.close() '''第二种方式来操作文件''' # with上下文管理器打开文件! # as:起别名 # 它的特点就在于:能够自动关闭文件 with open('a.txt', 'r', encoding='utf-8') as f: # f=open('a.txt', 'r', encoding='utf-8') f.close() print(f.read())1. 我们能够操作哪些类型的文件: .txt 没有后缀名的文件 # 我们现在不能操作word、Excel、PPT等文件暂时不能够操作 numpy、pandas等模块可以操作 2. 如何操作文件 """ 三步法: 1. 打开文件(open) 2. 读或者写 3. 关闭文件 """ # open('要操作的文件路径', '读写模式', '字符编码') 文件的路径: 相对路径 绝对路径 'D:\Python27\day10\a.txt' # 当路径中出现了字母和斜杠的组合会产生一些特殊的含义,所以我们应该给去掉: r'D:\Python27\day10\a.txt' f= open(r'D:\Python27\day10\a.txt', 'r', encoding='utf-8') # \n \t # 返回的是文件句柄 print(f) # <_io.TextIOWrapper name='D:\\Python27\\day10\\a.txt' mode='r' encoding='utf-8'> # 2. 读取文件 # helloworld print(f.read()) # 类似于是文件的内置方法 # 3. 关闭文件 f.close() '''第二种方式来操作文件''' # with上下文管理器打开文件! # as:起别名 # 它的特点就在于:能够自动关闭文件 with open('a.txt', 'r', encoding='utf-8') as f: # f=open('a.txt', 'r', encoding='utf-8') f.close() print(f.read())
读写操作相关的方法
r(默认的):只读w:只写a:只追加写r(默认的):只读 w:只写 a:只追加写r(默认的):只读 w:只写 a:只追加写
r模式的使用
1. 只读模式# 1. 读模式"""当文件路径不存在的时候,会直接保存"""# f = open('b.txt', 'r', encoding='utf-8') # No such file or directory: 'b.txt'# f = open('a.txt', 'r', encoding='utf-8') # No such file or directory: 'b.txt'# print(f.read())# f.close()## with open('a.txt', 'r', encoding='utf-8') as f:# print(f.read())1. 只读模式 # 1. 读模式 """当文件路径不存在的时候,会直接保存""" # f = open('b.txt', 'r', encoding='utf-8') # No such file or directory: 'b.txt' # f = open('a.txt', 'r', encoding='utf-8') # No such file or directory: 'b.txt' # print(f.read()) # f.close() # # with open('a.txt', 'r', encoding='utf-8') as f: # print(f.read())1. 只读模式 # 1. 读模式 """当文件路径不存在的时候,会直接保存""" # f = open('b.txt', 'r', encoding='utf-8') # No such file or directory: 'b.txt' # f = open('a.txt', 'r', encoding='utf-8') # No such file or directory: 'b.txt' # print(f.read()) # f.close() # # with open('a.txt', 'r', encoding='utf-8') as f: # print(f.read())
w模式的使用
# w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头with open('b.txt',mode='w',encoding='utf-8') as f:f.write('你好\n')f.write('我好\n')f.write('大家好\n')f.write('111\n222\n333\n')#强调:# 1 在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面# 2 如果重新以w模式打开文件,则会清空文件内容# w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头 with open('b.txt',mode='w',encoding='utf-8') as f: f.write('你好\n') f.write('我好\n') f.write('大家好\n') f.write('111\n222\n333\n') #强调: # 1 在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面 # 2 如果重新以w模式打开文件,则会清空文件内容# w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头 with open('b.txt',mode='w',encoding='utf-8') as f: f.write('你好\n') f.write('我好\n') f.write('大家好\n') f.write('111\n222\n333\n') #强调: # 1 在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面 # 2 如果重新以w模式打开文件,则会清空文件内容
a模式的使
# a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾with open('c.txt',mode='a',encoding='utf-8') as f:f.write('44444\n')f.write('55555\n')#强调 w 模式与 a 模式的异同:# 1 相同点:在打开的文件不关闭的情况下,连续的写入,新写的内容总会跟在前写的内容之后# 2 不同点:以 a 模式重新打开文件,不会清空原文件内容,会将文件指针直接移动到文件末尾,新写的内容永远写在最后# a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾 with open('c.txt',mode='a',encoding='utf-8') as f: f.write('44444\n') f.write('55555\n') #强调 w 模式与 a 模式的异同: # 1 相同点:在打开的文件不关闭的情况下,连续的写入,新写的内容总会跟在前写的内容之后 # 2 不同点:以 a 模式重新打开文件,不会清空原文件内容,会将文件指针直接移动到文件末尾,新写的内容永远写在最后# a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾 with open('c.txt',mode='a',encoding='utf-8') as f: f.write('44444\n') f.write('55555\n') #强调 w 模式与 a 模式的异同: # 1 相同点:在打开的文件不关闭的情况下,连续的写入,新写的内容总会跟在前写的内容之后 # 2 不同点:以 a 模式重新打开文件,不会清空原文件内容,会将文件指针直接移动到文件末尾,新写的内容永远写在最后
读写操作相关的方法
1. 读系列# 读系列with open('a.txt', 'r', encoding='utf-8') as f:# print(f.read()) # read方法是一次性读取文件中得所有数据# print(f.readline()) # helloworld1# print(f.readline()) # readline一次只读文件的一行内容# print(f.readlines()) # 一次性读取文件的所有内容,然后每一个内容作为列表的一个元素返回,返回的数据类型是:列表print(f.readable()) # able ation un multi ...2. 写系列# 写系列### 做后端程序员:最重要的是安全意识with open('a.txt', 'w', encoding='utf-8') as f:# f.write('jerry say hello ')# f.writelines(['hello\n', 'jerry\n', 'kevin\n', 'jason\n'])print(f.writable())print(f.readable())1. 读系列 # 读系列 with open('a.txt', 'r', encoding='utf-8') as f: # print(f.read()) # read方法是一次性读取文件中得所有数据 # print(f.readline()) # helloworld1 # print(f.readline()) # readline一次只读文件的一行内容 # print(f.readlines()) # 一次性读取文件的所有内容,然后每一个内容作为列表的一个元素返回,返回的数据类型是:列表 print(f.readable()) # able ation un multi ... 2. 写系列 # 写系列 ### 做后端程序员:最重要的是安全意识 with open('a.txt', 'w', encoding='utf-8') as f: # f.write('jerry say hello ') # f.writelines(['hello\n', 'jerry\n', 'kevin\n', 'jason\n']) print(f.writable()) print(f.readable())1. 读系列 # 读系列 with open('a.txt', 'r', encoding='utf-8') as f: # print(f.read()) # read方法是一次性读取文件中得所有数据 # print(f.readline()) # helloworld1 # print(f.readline()) # readline一次只读文件的一行内容 # print(f.readlines()) # 一次性读取文件的所有内容,然后每一个内容作为列表的一个元素返回,返回的数据类型是:列表 print(f.readable()) # able ation un multi ... 2. 写系列 # 写系列 ### 做后端程序员:最重要的是安全意识 with open('a.txt', 'w', encoding='utf-8') as f: # f.write('jerry say hello ') # f.writelines(['hello\n', 'jerry\n', 'kevin\n', 'jason\n']) print(f.writable()) print(f.readable())
文件的读操作的优化
with open('a.txt', 'r', encoding='utf-8') as f:# print(f.read()) # 一次性读取文件的所有数据,并且光标在文件的末尾,如果在去读,就读不到了# print(f.read())# 文件句柄f是支持for循环的for line in f:# line: 就是文件的一行内容print(line)# 了解的方法:# f.flush() # 把数据从内存中立刻刷到磁盘"""当你读取的数据比较小的时候,其实是在缓冲区的,当数据量够多的时候,它会一定刷到磁盘""""""一次性读取文件的所有数据有什么问题:当数据比较多的时候,会出现内存溢出,这种情况是坚决不能出现的如何优化以上操作:一点一点的读取数据然后把数据赶紧刷到硬盘里"""with open('a.txt', 'r', encoding='utf-8') as f: # print(f.read()) # 一次性读取文件的所有数据,并且光标在文件的末尾,如果在去读,就读不到了 # print(f.read()) # 文件句柄f是支持for循环的 for line in f: # line: 就是文件的一行内容 print(line) # 了解的方法: # f.flush() # 把数据从内存中立刻刷到磁盘 """ 当你读取的数据比较小的时候,其实是在缓冲区的,当数据量够多的时候,它会一定刷到磁盘 """ """ 一次性读取文件的所有数据有什么问题: 当数据比较多的时候,会出现内存溢出,这种情况是坚决不能出现的 如何优化以上操作: 一点一点的读取数据然后把数据赶紧刷到硬盘里 """with open('a.txt', 'r', encoding='utf-8') as f: # print(f.read()) # 一次性读取文件的所有数据,并且光标在文件的末尾,如果在去读,就读不到了 # print(f.read()) # 文件句柄f是支持for循环的 for line in f: # line: 就是文件的一行内容 print(line) # 了解的方法: # f.flush() # 把数据从内存中立刻刷到磁盘 """ 当你读取的数据比较小的时候,其实是在缓冲区的,当数据量够多的时候,它会一定刷到磁盘 """ """ 一次性读取文件的所有数据有什么问题: 当数据比较多的时候,会出现内存溢出,这种情况是坚决不能出现的 如何优化以上操作: 一点一点的读取数据然后把数据赶紧刷到硬盘里 """
文件的操作模式
1. 文本模式t:text# r w a =====> rt wt at"""with open('userinfo.txt', 'r', encoding='utf-8') as f:文本模式默认就是操作字符串,文本特征:1. encoding参数必须指定2. 读取的所有的数据都是以字符串为单位的3. t模式只能够读取文本或者字符模式"""2. 二进制模式b模式:binarywith open('userinfo.txt', 'rb') as f:"""b模式中得b不能省略------------> rb wb ab特征:1. encoding='utf-8'参数不能够指定2. 读取的数据全部以字节为单位3. 二进制模式可以读取任意类型的文件"""1. 文本模式 t:text # r w a =====> rt wt at """ with open('userinfo.txt', 'r', encoding='utf-8') as f: 文本模式默认就是操作字符串,文本 特征: 1. encoding参数必须指定 2. 读取的所有的数据都是以字符串为单位的 3. t模式只能够读取文本或者字符模式 """ 2. 二进制模式 b模式:binary with open('userinfo.txt', 'rb') as f: """ b模式中得b不能省略------------> rb wb ab 特征: 1. encoding='utf-8'参数不能够指定 2. 读取的数据全部以字节为单位 3. 二进制模式可以读取任意类型的文件 """1. 文本模式 t:text # r w a =====> rt wt at """ with open('userinfo.txt', 'r', encoding='utf-8') as f: 文本模式默认就是操作字符串,文本 特征: 1. encoding参数必须指定 2. 读取的所有的数据都是以字符串为单位的 3. t模式只能够读取文本或者字符模式 """ 2. 二进制模式 b模式:binary with open('userinfo.txt', 'rb') as f: """ b模式中得b不能省略------------> rb wb ab 特征: 1. encoding='utf-8'参数不能够指定 2. 读取的数据全部以字节为单位 3. 二进制模式可以读取任意类型的文件 """
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容