python学习笔记:文件读写

1.文件对象

1-文件

 1- Python2  File  --  Python3   TextIOWrapper

2-文件的打开:

    1- open(file,mode)-----函数---有返回值--文件对象
    2- 一定要有file文件路径(路径、文件名、文件格式)  否则
        TypeError: Required argument 'file' (pos 1) not found
    3- fo = open(fileDir)---只读
    4- 路径的写法
        1- fileDir = 'G:/pyTest1.txt'
        2- fileDir2 = 'G:\\pyTest1.txt'
        3- fileDir3 = r'G:\pyTest1.txt'--取消转义
    5- 路径
        1- 绝对路径--根目录开始的   G:/pyTest1.txt
        2- 相对路径 ./当前位置     ../ 上一级

6- 读模式

        0- 如果该文件不存在会报错!
        1- fo = open(fileDir,'r') ===  fo = open(fileDir) 
        2- fo.tell()---从0开始
        3- fo.read(2)----读2个字符
        4- fo.read()--读全部内容
        5- 文件中的换行是2个长度  \n   ‘a\nb’---字符串中是一个
        6- fo.close()--关闭文件	

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

      	1- 0模式---绝对位置模式   fo.seek(1,0)
            前提:python3 一定在'rb'模式下---二进制模式--非文本文件(图片)
        2- 1模式---当前位置开始移动 fo.seek(移动的位数,模式1)
                移动的位数 正数:向后移   负数:向前移	
        3- 2模式---从尾部
                1- fo.seek(-1,2) 
                2- 移动的位数 正数:向后移   负数:向前移

8- readline读取一行

        1- 该方法返回是 print(type(fo.readline()))--  <class 'str'>
        2- 文件指针会做相应的偏移

9- readlines读取所有行

     1- 该方法返回是 print(type(fo.readlines()))--  <class 'list'>
        区别:
             1- fo.read()----返回str
             2- fo.readlines()---返回是list---每一行是里面一个元素!
    2- fo.read().splitlines()---返回list  而且去掉换行符

7- 文件写模式:

   1- fo = open(fileDir,'w')
   2- 如果该路径下的文件存在---会清空!
   3- 如果该路径下的文件不存在---会新建!
   4- 在pycharm里面,你执行了fo.write('123')--可以直接写进去
   5- fo.write('123')--返回值---写的字符长度
   6- fo.flush() 强行写入文件
   7- fo.close() 关闭文件会强行写入文件

8- 追加模式 a

    1- 只是为了在文件末尾追加内容而打开文件

9- With open 方式

   1- with open(fileDir) as rFile:----rF = open(fileDir)
   2- 可以省略fo.close()
   3- 操作多个文件	       

10.seek:

	1- (1,模式)---0模式----绝对位置,从0开始---配套  ‘r’
        处理:文本文件---txt、log ----返回--str
    2- (1,模式)---1模式----当前位置,开始
        文件打开的模式一定是  rb---  读二进制(bin)---.pcap格式、图片、音频、视频文件用rb模式打开
    3- (1,模式)---2模式----尾部位置,开始---rb---  读二进制(bin)

windows --文件里面的换行–\r\n 2个长度 ‘\n’------ 一个 linux-一个

fileDir = 'F:/b.txt'    # 1.写路径方法 一定要带后缀名
# fo = open(fileDir,'br')  # fo是一个对象
# 1- 读模式
fo = open(fileDir,'br')  # r 缺省的---可以不写      读模式:文件不存在---会报错
print(fo.tell())  # 当前文件指针位置---开始在 0
# print(fo.read())  # 返回是--str    空着不写--全部--返回是str
# print(fo.tell())
# fo.close()       # 关闭文件---后续不能操作该文件呢

# print(fo.read(2))  # 返回是--str    空着不写--全部--返回是str
# fo.seek(1,1)  # r读模式    0 模式---从0开始算起
# print('移动后的文件指针位置:',fo.tell())
# fo.close()  # 关闭文件---后续不能操作该文件呢

print(fo.readline())  # 1- 读一行内容   返回是str
print(fo.readlines())  # 2- 读所有行   返回是列表  每一行是列表一个元素
print(fo.read().splitlines())  # 3- 读取所有行--去换行符


# # 2- 写
# # 文件不存在--不会报错--新建文件    文件存在--会清空
# fo = open(fileDir2,'w')  # w写模式  写模式不能读
# fo.write('123456')  #实际原理没有写进去-
# fo.flush()  #刷新---写入磁盘
# fo.close()  #关闭---也有保存的功能
#
# dataList = ['a','b','c','d']
# fo = open(fileDir2,'w')
# for one in range(0,4):
#     fo.write(dataList[one])

# with open(fileDir2,'r') as readF:
    #pass
# with open(fileDir2,'r') as readF,open('','w') as wFile:  #1- 可以省略fo.close()  2、操作多个文件
#     print()
发布了35 篇原创文章 · 获赞 4 · 访问量 941

猜你喜欢

转载自blog.csdn.net/qq_44891948/article/details/98527238
今日推荐