笔记||Python3之文件的读写

【文件的读模式】

           文件的对象:文件的读写通过文件操作对象进行。

                  Python2  -----  File

                  Python3  -----  TextIOWrapper

           文件的打开:

                  内置函数open(file,mode)   ---  打开文件,获取文件操作对象。

                  一定要有file文件路径(路径、文件名、文件格式)  否则报错。

                  fo = open(fileDir)   -----  只读

           路径的写法:①绝对路径 ----- 从根目录开始的

                            ②相对路径 ------ ./当前位置    ../ 上一级

                            fileDir = 'C:/test.txt'

扫描二维码关注公众号,回复: 7980242 查看本文章

                            fileDir = 'C:\\test.txt'

                            fileDir = r'C:\test.txt'  ---  取消转义

            读模式:如果该文件不存在会报错!

                       fo = open(dileDir, 'r')   <==>  fo = open(fileDir)

                       fo.tell()   -------------- 从0开始    显示指针位置

                       fo.read(2)  ------------ 读2个字符

                       fo.read() -------------- 读全部内容

                       文件中的换行是2个长度  \n     'a\nb'  -----  字符串中是一个

                       fo.close()  --- 关闭文件

            移动文件指针位置:seek()

                      0模式: --- 绝对位置模式  fo.seek(1,0)   从0开始  一般像txt、log        r

                                        前提:python3 一定在'rb'模式下 ---- 二进制模式 --- 非文本文件(图片)     

                      1模式:当前位置开始移动  fo.seek(移动的位数,模式1)  -----  如:fo.seek(-1, 1)        rb

                                   移动的位数 正数:向后移  负数:向前移

                       2模式:  ---从尾部位置开始   fo.seek(-1,2)          rb

                                         移动的位数  正数:向后移  负数:向前移

                       代码例子:

                       fileDir = 'C:/test.txt'

                       fo = open(fileDir, 'rb')     # 打开文件

                       print('读前',fo.tell())     # 显示指针当前位置

                       print(fo.read(2))            # 读2个字符

                       print('读后',fo.tell())    # 再次显示指针当前位置

                       fo.seek(2,2)                 # 移动向后移动两位

                       print(‘移动后’,fo.tell())  # 再一次显示指针当前位置

             readline:  读取一行

                       1 - 该方法返回是print(type(fo.readline())) --- <class 'str'>

                       2 - 文件指针会做相应的偏移

             readlines:读取所有行

                       1 - 该方法返回的是print(type(fo.readlines())) --- <class 'list'>

                 区别:① fo.read()   -------- 返回str

                            ② fo.readlines() -------- 返回是list

                       2 - fo.read().splitlines()  --- 返回list  而且去掉换行符

=================================================================================

【文件写模式】:

                      写模式特点:可以新建文件,若文件不存在则会创建一个新文件;

                                            如果写模式打开一个文件,所有的内容会被清空。 

                     1 - fo = open(fileDir, 'w')

                     2 - 如果该路径下的文件存在 --- 会清空

                     3 - 如果该路径下的文件不存在 ---- 会新建

                     4 - 在pycharm里面,你执行了fo.write('123') ----- 可以直接写进去

                     5 - fo.write('123') --- 返回值  ---- 写的字符长度

                     6 - fo.flush()  强行写入文件

                     7 - fo.close()   关闭文件会强行写入文件

追加模式 a:只是为了在文件末尾追加内容而打开文件

with open方式:

                     1 - with open(fileDir) as rFile:    ------等价于---------   rF = open(fileDir)

                     2 - 可以省略fo.close()

                     3 - 操作多个文件

seek: 1 - (1,模式) ---  0模式 ---- 绝对位置,从0开始

             2 - (1,模式) --- 1模式 ---- 当前位置,开始

             3 - (1,模式) --- 2模式 ---- 尾部位置,开始

例子:

           fileDir2 = open('C:/text.txt', 'w')

           fileDir2.write('123456')   # 一定是str

           # 如果写入时,需要换行时,应该怎么做?

           fileDir2.write('01-test'+'\n')

           fileDir2.write('02-test')

           fileDir2.flush()    # 写入

           fileDir2.close()   # 关闭  同样也会保存

猜你喜欢

转载自www.cnblogs.com/peipei-Study/p/11928619.html
今日推荐