Python教程

python学习day9笔记

本文主要是介绍python学习day9笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本日内容概括

  • 文件处理:

    文件处理的基本步骤
    
    	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)
    
这篇关于python学习day9笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!