ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python学习day9笔记

2021-06-09 21:05:41  阅读:144  来源: 互联网

标签:文件 笔记 day9 python 读写 encoding 模式 mode txt


本日内容概括

  • 文件处理:

    文件处理的基本步骤
    
    	with语法
        	自动执行f.close代码
        
    	文件打开模式
    		控制文件读写操作的模式
    			r  只读
    			w  只写
    			a  追加
    
    		控制文件读写内容的模式
    			t
    			b
    
    文件操作的方法
    
    	控制文件指针移动
    	文件修改的两种方式
    

本日内容详细

  • 什么是文件

    文件是操作系统提供给用户或者说应用程序操作硬盘的一种功能
    
  • 为何要用文件

    读写文件就是在读写硬盘:我们对文件的读写操作都会被操作系统转换成硬盘的读写
    
  • 如何用文件

    f = open(r'a.txt',mode = 'rt',encoding = 'utf-8')  # f 是 文件对象 文件句柄
    # 文件对象:既有功能又有数据
    # f 控制操作系统 打开硬盘内的a.txt 之后f打开的这个内容就存在应用程序里了
    f.close()
    # f 控制操作系统 关闭a.txt文件 f就失去打开的内容 两者失去连接
    应用程序 -> 操作系统 -> 硬盘
    
  • 文件打开模式

    1.控制文件读写操作的模式
      
      r模式:只读模式,如果文件不存在则报错,文件存在则文件指针处于文件开头
      w模式:只写模式,如果文件不存在则创建空文档,文件存在则清空,文件指针处于开头
      	  在打开了文件不关的情况下,连续的write写入,新写的内容永远跟在后面
      	  换行在内容后面加\n
      a模式:只追加写模式,在打开了文件不关的情况下,连续的write写入,新写的内容永远跟在后面
      	  在打开了文件关闭然后重新打开的情况下,a模式永远写在后面
      	  
      可读可写模式(不建议),例如:mode = (r+t)  
      # mode(读写操作模式+读写内容模式)  中间加个+号
      具有读写操作模式的特性,例如w模式打开文件文件会清空
      
      2.控制文件读写内容的模式
      t模式:读写都是以字符串为单位的,只适用于文本文件,必须指定encoding参数
      	  直接输出字符串
      b模式:读写都是以bytes为单位的,一定不能指定encoding参数
      	  直接原始输出
      '''
      f = open(r'a.txt',mode = 'rt',encoding = 'utf-8')
      mode只写r,默认输出rt模式
      
      f.write('  '.encode('utf-8'))  # b模式输入字符串
      
      print(f.read())
      print('123456')
      print(f.read())  # 文件指针到末尾,读不出来
      
      f.readable  # 判断是否可读,返回布尔值
      f.writeable  # 判断是否可写,返回布尔值
      
      # 文件拷贝功能
      # 方案1
      with open('1.mp4',mode='rb')as f1,open(r'D:\123.mp4',mode='wb') as f2:
          res = f1.read()
          f2.write(res)
          
      # 方案2
      with open('a.txt',mode'rt',encoding('utf-8')) as f1:
          for line in f1:
              f2.write(line)
    
  • 文件操作的其他方法

    1.读取文件,从头到尾,输出列表
    	f.readlines()
    
    2.读取文件,一次读一行
    	f.readline()
        
    3.输入列表,与readlines对应,类似用for循环一个一个输出列表内容
    	f.writelines(['111\n','222\n'])
        
    4.短时间内多次操作会将多次操作存到一起一次性进行
      使用flush(刷新)会直接将存储的操作进行
    	f.flush()
    
  • 控制文件指针移动

    '''
    大前提:只有t模式下的f.read(n)中的n代表的是字符个数
    	   除此之外,关于指针的移动,单位都是字节bytes
    '''
    
    1.截断文件,保留你所在指针往前或往后n个字节,其余删除
    	with open('a.txt',mode'r+t',encoding('utf-8')) an f:
            f.truncate(n)
    2.
    	f.seek(字节个数,0)
    	f.seek(字节个数,1)0....
    	f.seek(字节个数,2)
    

标签:文件,笔记,day9,python,读写,encoding,模式,mode,txt
来源: https://www.cnblogs.com/Milu-Mi/p/14868615.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有