python学习之路 – python的文件操作

目录

  • 一、python文件操作
  • 1、文件的编码
  • a、概念
  • b、编码分类
  • 2、文件的读取
  • a、打开文件
  • a、读取文件字节
  • c、读取文件行
  • d、for循环的读取
  • 3、文件的关闭
  • 4、文件的写入
  • 5、文件的追加
  • 6、文件操作综合
  • a、案例一:读取字符个数
  • b、案例二:复制文件
  • 一、python文件操作

    1、文件的编码

    a、概念

    计算机只能识别0和1,所以需要用编码技术将内容翻译成0和1

    b、编码分类
  • UTF-8
    除非有特殊要求,否则一般都用此编码
  • GBK
  • Big5
  • 2、文件的读取

    a、打开文件

    open(name,mode,encoding=‘’)

  • name:要打开的目标文件名,可以包含文件具体路径
  • mode:设置打开文件的模式,包含只读(r)、写入(w)、追加(a)
  • encoding后面的字符串:编码格式,推荐使用UTF-8
  • 此方法读完文件后不会自动关闭文件
  • 如果文件不存在,会自动创建新的空文件
  • 写入(w)模式时,会将文件中内容全部重置。追加(a)模式时,会在文件原本内容后面添加
  • #只读模式打开1.txt文件
    f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    
    结果:
    欢迎大家
    来到骨力
    的
    CSDN
    这里可以学很多知识噢!
    

    with open(name,mode,encoding=‘’) as f:

  • name:要打开的目标文件名,可以包含文件具体路径
  • mode:设置打开文件的模式,包含只读(r)、写入(w)、追加(a)
  • encoding后面的字符串:编码格式,推荐使用UTF-8
  • 此方法读完文件后会自动关闭文件
  • 如果文件不存在,会自动创建新的空文件
  • 写入(w)模式时,会将文件中内容全部重置。追加(a)模式时,会在文件原本内容后面添加
  • with open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8') as f:
        ff = f.readlines()
        print(ff)
    
    结果:
    ['欢迎大家\n', '来到骨力\n', '的\n', 'CSDN\n', '这里可以学很多知识噢!']
    
    a、读取文件字节

    read(num)

  • num:表示文件中读取的数据长度,单位是字节,如果不传,默认为读取所有
  • 如果多次调用此方法,则后面的方法会从前面已读取的字节开始读取
  • #读取文件1.txt前13个字符内容
    f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    print("第一次调用:",f.read(13))
    print("第二次调用:",f.read(15))
    
    结果:
    第一次调用: 欢迎大家
    来到骨力
    的
    C
    第二次调用: SDN
    这里可以学很多知识噢!
    
    c、读取文件行

    readlines()

  • 返回的是一个列表,每一行的数据为一个元素
  • 换行会自动转换成\n
  • f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    lines = f.readlines()
    print(lines)
    
    结果:
    ['欢迎大家\n', '来到骨力\n', '的\n', 'CSDN\n', '这里可以学很多知识噢!']
    

    readline()

  • 一次读取一行,只会返回一行的数据
  • f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    line = f.readline()
    print(line)
    
    结果:
    欢迎大家
    
    d、for循环的读取
    f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    for line in f:
        a = line.replace('\n', '')
        print(f"每一行的数据是:{a}")
    
    结果为:
    每一行的数据是:欢迎大家
    每一行的数据是:来到骨力
    每一行的数据是:的
    每一行的数据是:CSDN
    每一行的数据是:这里可以学很多知识噢!
    

    3、文件的关闭

    打开文件进行相关操作完毕后,需要调用close()方法,将文件关闭,否则程序会一直占用文件

  • 此方法内置了flush()的功能,flush()在后面有介绍
  • #打开文件后关闭文件
    f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    f.close()
    

    4、文件的写入

    open(name,‘w’,encoding=‘utf-8’) #打开文件
    f.write(字符串内容) #文件写入
    f.flush #内容刷新

    #创建新的文件2.txt,内容为"hello world"
    f = open('C:/Users/HLY/Desktop/2.txt','w',encoding='utf-8')
    f.write("hello world")  #写入内容
    f.flush()   #刷新内容
    f.close()   #关闭文件,close方法内置了flush的功能
    
    写可以直接调用close()方法
    f = open('C:/Users/HLY/Desktop/2.txt','w',encoding='utf-8')
    f.write("hello world")  #写入内容
    f.close()   #关闭文件,close方法内置了flush的功能
    

    5、文件的追加

    open(name,‘a’,encoding=‘utf-8’) #打开文件
    f.write(字符串内容) #文件写入
    f.flush #内容刷新

    f = open('C:/Users/HLY/Desktop/2.txt','a',encoding='utf-8')
    f.write("hello world")  #写入内容
    f.flush()   #刷新内容
    f.close()   #关闭文件,close方法内置了flush的功能
    

    6、文件操作综合

    a、案例一:读取字符个数

    统计某文件中1的个数

    方法一:
    with open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8') as f:
    	rr = f.read()
        print(rr.count("1"))
    
    方法二:
    num = 0
    with open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8') as f:
        for line in f:
            split_list = line.split(" ")
            for ii in split_list:
                if ii.replace('\n','')=="1":
                    num += 1
        print(f"包含1的个数有:{num}个")
    
    b、案例二:复制文件
    #将1.txt中的内容复制到2.txt中
    f = open('C:/Users/HLY/Desktop/1.txt','r',encoding='utf-8')
    f2 = open('C:/Users/HLY/Desktop/2.txt','w',encoding='utf-8')
    for line in f:
        f2.write(line)
    f2.close()
    f.close()
    

    作者:骨力

    物联沃分享整理
    物联沃-IOTWORD物联网 » python学习之路 – python的文件操作

    发表回复