1. 打开文件方法
    open('xx')
    注意,open后括号内加的是文件名,这里默认是当前文件的相对路径,如果不在当前文件层,需要绝对路径,默认打开方法是读取,即read,默认的解码器为当前系统的解码器windows的默认为GBK,写全了是这样:open('xx','r',encoding = 'gbk')。
    open()方法结果即是一个句柄,f = opne('xx')
    记住,打开文件就一定要关闭文件,否则很占内存!
  2. 对文件操作的方法
    读取,'r',即read的缩写,文件打开后,只能、仅能读取,其他操作一律报错
    读取全部内容:
    f = open('xxx','r',encoding = 'utf8')
    #‘xxx’是文件名,这里即代表相对路径,'r'代表只读,encoding=‘utf8’,这里是因为系统文件是gbk解码器,但是pycharm默认是utf8,最好统一。
    data = f.read()    #这一步就是在内存中读取全部内容,即光标从最初依次移动到最末,讲所有的内容读取出来放在内存中,并用变量data保存。
    print(data)    #输出读取的内容
    f.close()        #关闭文件
    ##########代码写一起就是下面这样###############
    f = open('xxx','r',encoding = 'utf8')
    data = f.read()
    print(data) 
    f.close()
    ==============================
    判断是否可读取
    即判断句柄对该文件的操作权限,是否可以读取内容
    f = open('xxx','r',encoding = 'utf8')
    print(f.readable())    #返回布尔值,判断函数
    f.close()
    ==============================
    逐行读取内容
    f = open('xxx','r',encoding = 'utf8')
    data = f . readline()    #读取一行内容
    print(data)                  #打印输出读取的内容
    f.close()                       #关闭文件
    注意:文件操作是看文件光标,他走完一行后就停下,在读取的时候,会同步读取你行末的回车键,再次运行该代码,光标不会重置,而是去下一行读取,
    f = open('xxx','r',encoding = 'utf8')
    print('第一行',f.readline())    #输出第一行的内容
    print('第二行',f.readline())    #输出第二行的内容
    print('第三行',f.readline())    #输出第三行的内容
    print('第四行',f.readline())    #输出第四行的内容
    f.close()
    ===============================
    读取所有行,并输出
    f = open('xxx','r',encoding = 'utf8')
    data = f.readlines()
    print(data)
    f.close()        
    读取所有行的内容,并以列表形式输出,会用'\n'提示你每行末有个回车
  3. 写内容
    w,即write的缩写,仅能写,不能读取,且在该方法打开文件的同时,会清空文件内容,如果文件不存在,则新建该文件
    写一行的内容:
    f = open('xxx','w',encoding = 'utf8')
    f.write('111111\n')    #\n是告诉系统到这里该回车了
    f.close()    
    该操作是对文件的实际性操作,不要在内存保存,故没有用变量来保存中间过程
    ===============================
    写多行内容
    对应readlines,这里是writelines,但是其传入参数同样应该为readlines的输出结果,即列表
    f = open('xxx','w',encoding = 'utf8')
    f.writelines(['11111\n','2222222\n','3333333\n'])
    f.close
    ==================================
    写入内容一定要是字符串,数字等形式不行,会报错
  4. 追加写内容
    追加写入,即在文件内容末尾继续写入,‘a’
    方法同write
  5. 其他方法
    ‘r+’:可读取可写入
    ‘w+’:可写入可读取
    ‘x’:只写模式,不存在不会创建会报错,渣渣
    ‘x+’:可写可读,不创建,不存在会报错,渣渣
    ‘a+’:可追加写可读
    ‘r’、‘r+’、‘w’、‘w+’、‘a’、‘a+’
  6. 修改文件内容并保存的方法的
    步骤:
    从硬盘中读取该文件内容至内存,然后对其进行修改,保存到一个新文件,用新文件覆盖旧的文件【这里要用的一个模块功能,暂时未学习,想来应该是os?】
  7. 关键词用法
    with open
    打开后,自动关闭,不需要在写关闭代码
    with open('xx','w',encoding = 'utf8') as f:
        f.write('111222333\n')
    with open可以同时打开多个文件
    with open('xx','w',encoding = 'utf8') as faa,\
        ('yy','w',encoding = 'utf8') as fbb:
    代码解释:
    with open的格式,后面赋值给文件句柄,需要用as;打开多个文件的时候,代码太长,为了方便需要隔断,隔断就是找到一个合适的地方,用\标记,然后回车换行。
  8. 二进制读取写入方式
    f = open('xxx','rb')
    内容存储在硬盘上的时候,就是二进制状态,在以打开二进制模式打开的时候,不可以指定编码
    【从字符串----编码----》二进制】
    【从二进制----解码----》字符串】
    f = open('xxx','rb')
    data = f.read()
    print(data)    #输出二进制内容
    如果要输出正常内容怎么办,对data进行解码操作
    res = data.decode('utf-8')
    print(res)
    ===================================
    关于二进制下写入
    与读取对应,你写入的也应该是二进制数据,
    f = open('xxx','wb')
    f.write('asdfa'.encode('utf8'))
    ====================================
  9. 什么时候还会用到二进制读写方法?
    其实在open函数中,‘r’,'w','a'等默认是'r','wt','at',这是指针对文本修改,但是文件,不仅仅是文本,还有图片、视频等等;二进制 处理文件,可以是文件跨平台使用,因为不论是Windows还是Linux等系统,底层都是二进制。