美文网首页
Python3之文件操作

Python3之文件操作

作者: 冲锋丘丘人 | 来源:发表于2019-04-30 11:31 被阅读0次

    一、文件打开模式

    • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    • w,只写模式【不可读;不存在则创建;存在则清空内容】
    • x, 只写模式【不可读;不存在则创建,存在则报错】
    • a, 追加模式【可读; 不存在则创建;存在则只追加内容】,文件指针自动移到文件尾。

    "+"表示可以同时读写某个文件

    • r +, 读写【可读,可写】
    • w +,写读【可读,可写】,消除文件内容,然后以读写方式打开文件。
    • x + ,写读【可读,可写】
    • a +, 写读【可读,可写】,以读写方式打开文件,并把文件指针移到文件尾。

    "b"表示以字节的方式操作,以二进制模式打开文件,而不是以文本模式。

    • rb或r+b
    • wb或w+b
    • xb或w+b
    • ab或a+b
      注: 以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

    二、读取txt文件

    with open(text_path,'a+') as my_file:
        #values2 = my_file.readlines()
        #values2 = my_file.read()
        values2 = my_file.readline()
        
     read() 读取整个文件。返回str
     readline() 读取一行数据。返回str
     readlines() 读取所有行的数据。返回list
    

    三、读取csv文件

    import csv 
    with open('test_data/user_info.csv','r+') as my_file:
        data = csv.reader(my_file)
        print(type(data))  #返回对象
        for row in data:
            print(row)     #返回list
    

    四、读取excel文件

    读取Excel文件需要安装xlrd库,在cmd界面输入命令:pip install xlrd

    import xlrd
    # 打开Excel文件读取数据
    workbook = xlrd.open_workbook('a.xlsx')
    # 打印所有的sheet列出所有的sheet名字
    print(workbook.sheet_names())
    # 根据sheet索引或者名称获取sheet内容
    Data_sheet = workbook.sheets()[0]
    # Data_sheet = workbook.sheet_by_index(1)
    # Data_sheet  = workbook.sheet_by_name(u'Charts')
    # 获取sheet名称、行数和列数
    print(Data_sheet.name,Data_sheet.nrows,Data_sheet.ncols)
    
    # 获取整行和整列的值(列表)
    rows = Data_sheet.row_values(0) #获取第一行内容
    cols = Data_sheet.col_values(1) #获取第二列内容
    print(rows)
    print(cols)
    
    # 获取单元格内容的数据类型
    # 相当于在一个二维矩阵中取值
    # (row,col)-->(行,列)
    cell_A1 = Data_sheet.cell(0,0).value# 第一行第一列坐标A1的单元格数据
    # cell_C1 = Data_sheet.cell(0,2).value  # 第一行第三列坐标C1的单元格数据
    
    # 检查单元格的数据类型
    # ctype的取值含义
    # ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
    print(Data_sheet.cell(4,0).ctype)
    
    #栗子
    def Get_Excel(file_path):
        all_case = []
        workbook = xlrd.open_workbook(file_path)
        sheet_data = workbook.sheet_by_index(1)
        #获取总行数
        row_sum = sheet_data.nrows
        #起始为1,所以不包括表头
        for i in range(1,row_sum):
            is_activity = sheet_data.cell(i,9).value
            #过滤不运行的测试数据
            if int(is_activity) == 1:
                all_case.append({
                    "case_name":sheet_data.cell(i,4).value,
                    "data":sheet_data.cell(i,5).value,
                    "url":sheet_data.cell(i,6).value,
                    "method":sheet_data.cell(i,7).value,
                    "code":sheet_data.cell(i,8).value
                })
        return all_case
    

    五、读取yaml文件

    Python读取yaml文件需要安装第三方库pyyaml,cmd界面输入命令:pip install pyyaml
    config.yaml文件内容如下:

    url : https://www.baidu.com
    email : ['123456@qq.com','admin@qq.com']
    DB :
      host: localhost
      name : test
      user : admin
      password : admin
    

    读取yaml文件

    import yaml
    with open("config/config.yaml","r+",encoding='utf-8') as my_yaml:
        yaml_data = yaml.load(my_yaml)
        print(yaml_data)
        print(type(yaml_data))   #返回字典
        print(type(yaml_data['url']))
        print(type(yaml_data['email']))
        print(type(yaml_data['DB']))
    

    输出如下

    {'url': 'https://www.baidu.com', 'email': ['123456@qq.com', 'admin@qq.com'],
     'DB': {'host': 'localhost', 'name': 'test', 'user': 'admin', 'password': 'admin'}}
    <class 'dict'>
    <class 'str'>
    <class 'list'>
    <class 'dict'>
    

    相关文章

      网友评论

          本文标题:Python3之文件操作

          本文链接:https://www.haomeiwen.com/subject/hgumnqtx.html