zoukankan      html  css  js  c++  java
  • 文件的各种操作

    文件操作

    f = open('文件的路径',mode = '打开文件的模式',encoding = '编码方式')
    # 打开 第一个内容是文件的名字(必须是字符串)
    # mode 第二个内容是我们对文件的操作方式
    # encoding 第三个内容是我们文件的编码集
    # f 文件句柄所有对文件的操作都是操作文件句柄
    

    只读

    mode = 'r'

    # mode = 'r' 只读
    content = f.read()  # 读 一次性全部读取
    content = f.readline()  # 读取一行,但是一行后有
    换行
    content = f.readlines()  # 读取多行,存放在列表里
    content = f.read(3) # mode = 'r' read里的内容就是表示读取的字符数量
    print(content)
    

    mode = 'rb'

    f = open(r'c:UsersSuper LaDesktopqwe.txt', mode = 'rb')
    # r 和 \ 一样都是转义  r'c:UsersSuper LaDesktopqwe.txt'      'c:\Users\Super La\Desktop\qwe.txt'
    # 如果直接拷贝文件路径的话 将C转换成c
    # rb读取字节
    print(f.read()) # 读取字节 不能指定编码格式
    

    绝对路径:从磁盘开始查找的就是绝对路径

    相对路径:相对与 上文件夹内容详解来查找的一种路径

    文件路径推荐写法 用相对路径

    只写

    mode = 'w'

    f = open('t1.txt', mode = 'w', encoding = 'utf8')
    f.write('lalalalaalal')
    f.write('啦啦啦啦啦啦')
    print(f.write('123456'))  # 返回创建字符的数量
    # w模式 如果文件不存在就新建一个
    # 覆盖写,写之前先把文件清空
    

    mode = 'wb'

    f = open('qq.jpg',mode = 'rb')
    f = open('qq1.jpg',mode = 'wb')
    f.write(f.read())
    

    a 模式 追加

    f = open('t1',mode = 'a', encoding = 'utf8')
    f.write('lalala')
    #文件最后添加内容
    

    'w' 只写 没有读的功能 打开word 打不开

    读写

    r+ 读 写

    f = open('t1',mode = 'r+',encoding = 'utf8')
    # 读 写
    #print(f.read())  #读内容
    #f.write('啦啦啦') 
    
    # 写 读 错误示范 写的时候会把源文件覆盖一部分
    #f.write('啦啦啦') 
    #print(f.read())  #读内容
    

    w+ 写 读

    f = open('t1',mode = 'w+',encoding = 'utf8')
    f.write('lalala')
    f.seek(0)  # 移动文件光标 
    print(f.read())
    

    a+ 追加 读

    f = open('t1',mode = 'a+',encoding = 'utf8')
    f.seek(0)
    print(f.read())
    f.write('哈哈哈')
    
    

    最常用的r+

    f = open(r'..	1',mode = 'r+',encoding = 'utf8')
    # .. 返回上一级
    #print(f.read())  # 读内容
    #f.write('今天是个好日子')
    
    

    总结:

    # r 只读    不能写
    # read()    读取全部  模式是r的时候  read(3)  读取3个字符
    # 				    模式是rb的时候  read(3)  读取3个字节
    # read()         读取一行
    # readlines()    存放在一个列表中
    
    # w 只写    不能读   覆盖写,先清空文件的内容,再写
    # 当文件不存在的时候,创建一个文件
    
    # a 追加 不能读
    # 写的内容一直在问价的末尾
    
    # r+
    # 错误示范    先写在读
    # 正确的是    先读在写
    
    # w+    写读
    # 写读的时候是读不到内容的,除非移动光标
    
    # a+  追加写  读
    # 写读的时候是读不到内容的,除非移动光标
    # 最常用:r, w, a, r+, a+
    
    
    f = open('t1',mode = 'r',encoding = 'utf8')
    print(f.read())
    msg = f.read()
    print(msg)
    f.close()  # 关闭文件
    
    f = open('t1',mode = 'w',encoding = 'utf8')
    msg = f.write('啦啦啦')
    f.flush()   # 刷新
    print(msg)
    f.close()
    
    
    with open('t1', mode = 'r', encoding = 'utf8') as f : # 上下文管理    ---面试题
        msg = f.read()
        print(msg)
    # 不用自动关闭
    
    

    文件其他操作

    with open('t1','r',encoding = 'utf8') as f:
        print(f.read())
        print(f.seeek(0)) # 字节
        # 双数字
       		 # (0,0)文件的头部
      		 # (0,2)文件的尾部
       		 # (0,1)当前位置
         # 单数字
       		 seek(0)	# 字节  
        print(f.read(1)) # 读一个字符
        print(f.tell()) # 查看光标的位置  数的字节
    
    
    with open('t1','r',encoding = 'utf8') as f:
        f.truncate(9)	# 截取 3个字符 指定字节之后的内容全部删除
        
    
    

    文件更改及名字修改

    import os
    os.rename('t2','t3') # 修改文件名
    
    
    with open('t1','r',encoding = 'utf8') as f , open('t2','a',encoding = 'utf8') as f1:
        msg = f.read()   # 将文件复制一份
        msg = msg.replace('好','困')
        f1.write(msg)
        
    import os
    os.remove('t1')  # 删除源数据
    os.rename('t2','t3')
    
    
    with open('t4',mode = 'r',encoding = 'utf8') as f, open('t6', mode = 'a',encoding = 'utf8') as f2:
        for i in f:
            print(i.strip())
        	f2.write(i) # 文件修改
    
    

    今日总结:

    	# open()  # 打开
    	# close	要关闭文件
    	# 写模式下需要刷新  flush()
    
    	# r 只读
    	# 	read(3)   看对文件操作的模式来判断是字符还是字节
    	# 	mode = 'r' 时候是字符
    	# 	mode = 'rb' 时候是字节
    	# readline()   读取一行,自带
    (换行)
    	# readlines()  读取全部以一行一行的形式存在放列表里
    
    	# a 追加
    		#文件的末尾写
    	# w 覆盖写
    		# 先清空文件,后写入文件
    
    	# rb ,wb ab自己试
    		# 只要是带b的模式,注意的是不是不能有encoding
    
    	# a+
    	#   追加 + 读     注意 不管怎么读都读不到内容,除非移动光标
    
    	# w+
    	# 	覆盖写 + 读   注意:先写后读  先读后写   除非移动光标
    
    	# r+
    	# 	读 + 写      注意: 先读后写
    
    	# 其他操作
    
    	# seek()  移动光标
    	#  	0,0    开头
    	# 	0,1    当前
    	# 	0,2    末尾
    
    	# 3 如果是文字就移动一位,如果是英文就移动3位
    
    	# tell() 查看光标 光标是按照字节数的
    
    	# truncate()  截取  内容是字节数
    
    # 文件修改
    import os  # 导入  os和操作系统相关
    
    # os.rename()  # 重命名  第一个参数旧的名字,第二个是新的名字
    # os.remove()    # 删除这个文件  字符串
    
    
    # with open('t1','r',encoding='utf-8')as f,
    # 		open('t2','w',encoding='utf-8')as f1:
    
    # 路径:
    
    # 绝对路劲: 从磁盘根目录开始查找
    # 相对路劲: 相对于某个东西来查找就是相对路径
    # 	返回上一级 ..
    # c:user...    可以把单个写成双\
    # 在路径的前面加一个r
    # 以上两种就是转义
    
    
  • 相关阅读:
    字符串加密
    接口实例
    RecyclerView添加Hearder
    基于Vue实现图片在指定区域内移动
    Tinymce 编辑器添加自定义图片管理插件
    LocalStorage和sessionStorage之间的区别
    javascript之url转义escape()、encodeURI()和decodeURI(),ifram父子传参参数有中文时出现乱码
    Js实现简单的音频播放
    通用CSS命名规范
    Hbuilder常用功能汇总
  • 原文地址:https://www.cnblogs.com/fengqiang626/p/11189278.html
Copyright © 2011-2022 走看看