• python文件的读取


    1.文件的读取

    操作文件的第一步就是得打开要操作的文件,然后进行读取文件,最后关闭文件。在python中我们可以使用open函数来打开一个文件,然后读取文本文件。
    读取文本文件内容有三种方法:read()、readline() 和 readlines()

    打开文件有两种书写方式:

    1.需要使用close()方法关闭文件

    示例如下:

    #文件的读取
    import os
    #以相对路径打开文件
    f= open("./test.txt",encoding='utf-8')
    #以绝对路径打开文件
    #f= open("D:\\Anacond/work/learn数据清洗/文件读取及其处理/test.txt",encoding='utf-8')
    #读取文件
    content=f.read()
    #关闭文件
    f.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.with语句能自动处理上下文环境产生的异常并且关闭文件句柄

    示例如下:

    import os
    #打开文件
    with open('./test.txt', encoding='utf-8') as f2:
        #读取文件
        contents = f2.read()
    print(contents)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出结果:

    翻山越岭 寻一个你
    不负此生 不负相遇 不负我偏向苦海去
    只为渡你

    1.read() 读取整个文件

    示例如下:

    f3=open('./test.txt', encoding='utf-8')
    contents1=f3.read()
    f3.close()
    
    • 1
    • 2
    • 3

    输出结果:

    翻山越岭 寻一个你
    不负此生 不负相遇 不负我偏向苦海去
    只为渡你

    2.readline() 每次读取一行文件

    readline() 每次读取一行文件,可利用循环将文件内容全部读出

    示例如下:

    f4=open('./test.txt', encoding='utf-8')
    #此时只读取了一行
    contents2=f4.readline()
    print(contents2)
    i=1
    #利用循环全部读出
    while contents2:
        print(f'第{i}{contents2}')
        contents2=f4.readline()
        i=i+1
    f4.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出结果:

    翻山越岭 寻一个你
    第1行 翻山越岭 寻一个你
    第2行 不负此生 不负相遇 不负我偏向苦海去
    第3行 只为渡你

    3. readlines() 读取文件的所有行

    readlines()方法读取整个文件所有行,保存在一个列表(list)变量中;

    示例如下:

    f5=open('./test.txt', encoding='utf-8')
    contents3=f5.readlines()
    f5.close()
    print(contents3[1])
    
    • 1
    • 2
    • 3
    • 4

    输出结果:

    不负此生 不负相遇 不负我偏向苦海去

    2.文件的写入

    写入文件,分为向新文件写入数据和向已有文件写入数据。向文件写入数据的过程为:

    1. 创建新文件(已有则不需要创建)
    2. 使用用open()方法打开文件
    3. 使用write()方法向文件写入数据
    4. 使用close()方法关闭文件

    在文件的写入使用open()方法时,需要用到以下三个参数:

    “x” - 创建 - 将创建一个文件,如果文件存在则返回错误
    “a” - 追加 - 如果指定的文件不存在,将创建一个文件
    “w” - 写入 - 如果指定的文件不存在,将创建一个文件

    1.以"x"方式打开文件

    注意:如果该文件已存在则会返回错误,并且不会写入内容

    示例如下:

    import os
    #创建文件1.txt,若文件已存在则返回错误
    ff=open('test1.txt',"x")
    #向文件写入内容
    ff.write("这一秒,像梦一般心跳")
    #关闭文件
    ff.close()
    ff=open('test1.txt')
    ss=ff.read()
    ff.close()
    print(ss)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出结果:

    这一秒,像梦一般心跳

    2.以"a"方式打开文件

    注意:该方式是向文件追加数据,会追加到文件的末尾;同时该文件不存在还会自动创建文件。

    示例如下:

    import os
    #向文件1.txt追加内容
    ff=open('test1.txt',"a")
    #向文件追加内容
    ff.write("  美好的无需安排,我一直充满期待,无所不在的未来,跨过晴空云海")
    #关闭文件
    ff.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    文本内容:

    这一秒,像梦一般心跳 美好的无需安排,我一直充满期待,无所不在的未来,跨过晴空云海

    3.以"w"方式打开文件

    该方式是向文件重写数据,会覆盖文件已有的内容;同时该文件不存在还会自动创建文件。

    示例如下:

    import os
    #向文件1.txt重写文件内容
    ff=open('test1.txt',"w")
    #向文件重写内容
    ff.write("Tell me what u gonna do it")
    #关闭文件
    ff.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    文件内容:

    Tell me what u gonna do it

    3.文件的删除

    可使用remove()删除文件,为避免不存在该文件,可检查文件是否存在,然后再删除它

    示例如下:

    import os
    if os.path.exists("demofile.txt"):
      os.remove("demofile.txt")
    else:
      print("The file does not exist")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.Excel表数据的读取

    python读取excel文件的三种方法:一种是直接读取;另两种是通过pandas读取,相对比比较方便

    1.直接读取

    示例如下:

    import xlrd   #引入库
    ex=xlrd.open_workbook("超市营业额.xls")
    sheet_num=ex.nsheets #文件中工作表的个数
    print(sheet_num)
    sheet_name=ex.sheet_names() #各个工作表的名称
    print(sheet_name)
    sheet=ex.sheet_by_index(2) #通过索引获取第一个工作表
    #输出sheet的形状
    print(sheet.nrows,sheet.ncols) 
    #获取第一行的数据
    row_data=sheet.row_values(0)  #返回给定的行数的单元格数据进行切片
    print(row_data)
    #获取第二列的数据
    col_data=sheet.col_values(1)
    print(col_data)
    #获取位置为(0,1)单元格的数据
    one_data=sheet.cell(0,1) 
    print(one_data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    输出结果:

    3
    [‘表1’, ‘表2’, ‘表3’]
    8 3
    [‘工号’, ‘姓名’, ‘职级’]
    [‘姓名’, ‘张三’, ‘李四’, ‘王五’, ‘赵六’, ‘周七’, ‘钱八’, ‘孙九’]
    text:‘姓名’

    2.通过pd.ExcelFile()读取

    示例如下:

    import pandas as pd
    #读取工作簿和工作簿中的工作表
    fff=pd.ExcelFile('超市营业额.xls')
    print(fff.sheet_names)
    #du
    data= fff.parse('表3')
    data
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出结果:
    在这里插入图片描述

    3.通过pd.read_excel()读取

    这种方法最为方便快捷

    示例如下:

    import pandas as pd
    #读取excel文件
    #该方法默认读取该文件中第一张表
    df=pd.read_excel('./超市营业额.xls')
    #如果Excel文件有多个表格,可通过sheet_name属性指定,如果不指定默认读取第一张表
    #df1=pd.read_excel('./超市营业额.xls',sheet_name='表3')
    df[0:5]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出结果:
    在这里插入图片描述

    pd.read_excel()方法的常用参数

    • sheet_name:指定读取文件中哪一张表
    • usecols:指定读取表中的哪几列
    • header:指定表中哪一列作表头,也就是列索引
    • index_col:指定表中哪一列作行索引

    示例如下:

    #可读取任意列
    df1=pd.read_excel('./超市营业额.xls',sheet_name='表3',usecols = [0,2])
    print(df1)
    #可指定第3行为列索引,指定第2列为行索引
    df3=pd.read_excel('./超市营业额.xls',sheet_name='表3',header=2,index_col=1)
    df3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出结果:
    在这里插入图片描述

    5.Excel表数据的写入

    示例如下:

    import pandas as pd
    #创建名为1.xls的文件
    ss=pd.ExcelWriter('1.xls')
    #使用to_excel将df3的数据写入到新建的工作簿的工作表1中
    df.to_excel(ss,sheet_name='1',index=True)
    #保存并退出
    ss.save()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    Java练手任务总结【19】
    Java 设计模式——访问者模式
    【入门篇】1.4 redis 客户端 之 Lettuce 详解
    近年来国内室内定位领域硕士论文选题的现状与趋势
    Baumer工业相机堡盟工业相机如何联合GAPI SDK和OpenCV实现相机图像将图像转换为Mat格式再转为Bitmap图像进行显示(C#)
    pthread_create创建线程失败问题排查
    虹科案例 | 空调故障无冷气,且没有故障码
    vue diff 算法学习
    自定义MVC框架实现
    【C++11数据结构与算法】C++ 栈
  • 原文地址:https://blog.csdn.net/qq_45011164/article/details/127584512