zoukankan      html  css  js  c++  java
  • python基础知识六 文件的基本操作+菜中菜

    基础知识六 文件操作

    ​ open():打开

    ​ file:文件的位置(路径)

    ​ mode:操作文件模式

    ​ encoding:文件编码方式

    ​ f :文件句柄

    f = open("1.txt",mode = 'r',encoding = 'utf-8')
    print(f.read())
    f.close
    

    1.文件操作模式:

    ​ r,w,a(重要)

    ​ rb,wb,ab(次要)

    ​ r+,w+,a+

    1.1 r/w/a

    1. r操作:
    f = open('1.txt','r')
    print(f.read()) #全部读取
    print(f.read(5))#按照字符进行读取,前5个
    print(f.readline())#读取一行内容,自动换行
    print(f.readline().strip())#拖
    
    print(f.readlines())#一行一行读,存为列表
    
    #解决大文件:
    for i in f:
        print(i)#本质就是一行一行进行读取
    
    2. w操作:
    1. 先清空文件
    2. 写入文件
    f = open('1.txt','w',encoding='utf-8')
    f.write('13030308
    ')
    f.write('456456
    ')
    f.close()
    
    3. a操作:追加操作
    #在源文件的基础上进行添加
    f = open('1.txt','a',encoding='utf-8')
    f.write('13030308
    ')
    f.write('456456
    ')
    f.close()
    

    1.2. b操作:rb/wb/ab

    #rb:
    f1 = open('1.jpg','rb')
    print(f1.read())
    print(f1.read(3))#按照字节读取,读取前3个字节
    #wb:
    f = open('3.jpg','wb')
    f.write(f1.read())
    #ab:
    f = open('2.jpg','ab')
    f.write('你好啊',encode = 'utf-8')
    
    1.3 +操作
    1. r+:读写。应该先读后写
    #错误示范
    f = open('1.txt','r+')
    #f = write('cx你太美')
    #print(f.read())
    #正确
    print(f.read())
    f = write('cx你太美')
    
    2. w+ :清空写读
    #读不到内容
    f = open('1.txt','w+')
    f = write('cx你太美')#光标问题
    print(f.read())
    
    3. a+:追加写读
    #读不到内容
    f = open('1.txt','a+')
    f = write('cx你太美')#光标问题
    print(f.read())
    

    2.菜中菜:

    1.f.tell(): 返回的是字节数
    2.f.seek(): 移动光标,
    1. seek(0,0) --> 移动到文件头部
    2. seek(0,1) --> 当前位置
    3. seek(0,2) --> 移动到文件末尾
    4. seek(3) --> 按字节移动(按照不同编码集进行计算)
    print(f.tell())#显示光标位置,返回的是字节数
    f.seek(0)#移动光标
    
    3.文件修改:
    f =open('1.txt','r','utf-8')
    #for i in f:
    s = f.read()
    s1 = s.replace('12','45')
    f.close()
    f1 =open('1.txt','w','utf-8')
    f1.write(s1)
    f1.close()   
    
    4.with open()#自动打开关闭文件
    with open('1.txt','r','utf-8') as f,
    open('1.1.txt','w','utf-8') as f1:
    	for i in f:
            s1 =i.replace('12','45')
            f1.write(s1)
    import os 
    os.rename('1.txt','1.bak')
    os.rename('1.1.txt','1.txt')
    

    3.相对路径:

    1. 绝对路径方式打开文件

      路径转义:

      1.""

      2.r"C:user et"

    f = open("E:\python\oldboy\py\190715",'r','utf-8')
    #路径转义:1.'\'
    #2.r。-->repr():数据的原形态
    #s = "[1,2,'3',4]"
    #print(s)
    #print(repr(s))#--显示数据原形态
    f = open(r"E:pythonoldboypy190715",'r','utf-8')
    print(f.read())
    f.close()
    
    1. 相对路径
    f = open("../190713/1.txt",'r','utf-8')
    print(f.read())
    f.close()
    #推荐使用相对路径
    
  • 相关阅读:
    html-标题标签、水平线标签和特殊字符
    htm-文字标签和注释标签
    html-html简介
    scss-函数
    scss-!optional
    scss-@extend
    解决SecureCRT下spark-shell中scala无法删除问题
    Python list降序排序
    Python 字典的一键多值,即一个键对应多个值
    python 数组中如何根据值,获取索引,如何根据索引删除值 , 以及如何根据值删除值
  • 原文地址:https://www.cnblogs.com/Onlywang/p/11198673.html
Copyright © 2011-2022 走看看