软测入门(七)python操作数据文件(Json、yaml、csv、excel、xml)

news2024/11/15 13:34:17

python操作文件

txt文件

  • read() : 读取所有
  • readline() : 读取一行
  • readlines() : 读取所有,且以行为单位,放入list列表中
file = open(r"F:\abc.txt", "r", encoding="utf-8")  # 以utf-8格式读取文件
# 读取所有
# print(file.read())

# 读取一行
# print(file.readline())

# 读取所有,且以行为单位,放入list列表中
lines = file.readlines()
for l in lines:
    print(l)

csv文件

CSV:逗号分隔值文件,其文件以纯文本形式存储表格数据,是自动化测试中常用的一种文件类型。

在这里插入图片描述

编写一个csv文件,内容如上,然后打开文件

在这里插入图片描述

数据以表格的形式存储。

import csv
file = open("aaa.csv", "r", encoding="utf-8")
c = csv.reader(file)
for cs in c:
    print(cs)
    
    
######################################################################################
['姓名', '性别', '年龄']
['张三', '男', '18']
['李四', '女', '19']
['王五', '男', '20']

Excel文件

excel是以二进制形式存储文件。

在这里插入图片描述

有一个excel文件,内容如上。

  • 安装库,xlrd1.2.0版本支持 xlsx的文件

    pip install xlrd==1.2.0
    
  • 使用

    import xlrd
    
    lsx = xlrd.open_workbook("bbb.xlsx")
    # 获取到第一个 sheet 页
    sheet = lsx.sheet_by_index(0)
    
    # 获取行数  /  列数
    print(sheet.nrows, sheet.ncols)
    # 拿取第一行
    print(sheet.row_values(0))
    
    print("=========================================")
    # 拿取所有遍历
    for i in range(sheet.nrows):
        print(sheet.row_values(i))
    

Json文件

在这里插入图片描述

整理一个Json文件,然后代码读取这些数据

import json

file = open("ac.json", "r", encoding="utf-8")
# 注意:这里从文件中读取后,是字符串,不是json的对象
json_str = file.read()
json_obj = json.loads(json_str)
print(json_obj)

print("+++++++++转换为json字符串++++++++")
# 转换为json字符串,不使用转码
js_str = json.dumps(json_obj, ensure_ascii=False)
print(js_str)

[{'name': '张三', 'sex': '男', 'age': 20}, {'name': '李四', 'sex': '女', 'age': 19}, {'name': '王五', 'sex': '男', 'age': 21}]
+++++++++转换为json字符串++++++++
[{"name": "张三", "sex": "男", "age": 20}, {"name": "李四", "sex": "女", "age": 19}, {"name": "王五", "sex": "男", "age": 21}]

在这里插入图片描述

Xml文件

准备一个xml文件

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.95</price>
    </book>
</bookstore>

开始读取

# 导包
try:
    import xml.etree.cElementTree as ET
except:
    import xml.etree.ElementTree as ET

# 解析 xml文件
tree = ET.parse("test.xml")
# 获取根节点
root = tree.getroot()

print(root.tag)     # 获取标签名
print(root.attrib)  # 获取属性
print(root.text)    # 获取标签文本

for child in root:
    print(child.tag)  # 获取标签名
    print(child.attrib)  # 获取属性
    print(child.text)  # 获取标签文本

    for children in child:
        print(children.tag)  # 获取标签名
        print(children.attrib)  # 获取属性
        print(children.text)  # 获取标签文本

yaml文件

  • 安装

    pip install pyyaml
    
  • 使用

    准备一个yml文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7gBVsePb-1678075419972)(imgs7/6.png)]

    转换为 python 对象

    import yaml
    
    file = open("test.yml", "r", encoding="utf-8")
    yaml_obj = yaml.load(file.read(), Loader=yaml.FullLoader)
    print(yaml_obj)
    
    ################################################################
    {'animal': 'pets', 'hash': {'name': 'steve', 'foo': 'bar'}, 'lists': ['Cat', 'Dog'], 'aris': [['Barry', 'Couch', 'Zara'], ['Anna', 'John']], 'dans': ['A', 'B', 'C']}
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IM即时通讯开发之常用加解密算法与通讯安全讲解

平时开发工作中&#xff0c;我们会经常接触加密、解密的技术。尤其在今天移动互联网时代&#xff0c;越来越多的用户会将数据存储在云端&#xff0c;或使用在线的服务处理信息。这些数据有些涉及用户的隐私&#xff0c;有些涉及用户的财产&#xff0c;要是没有一套的方案来解决…

儿童写作业的台灯怎么选择?2023给孩子买台灯最新推荐一下

儿童年龄比较小&#xff0c;所以眼睛也比较脆弱&#xff0c;然而现在的社会普遍节奏较快&#xff0c;无论是上班族&#xff0c;还是大中小学生&#xff0c;压力都比较大&#xff0c;儿童经常晚上看书、写字学习&#xff0c;眼睛难免劳累&#xff0c;所以儿童台灯最重要的就是柔…

CDGA|给金融科技数据治理的四大建议,从根基上解决问题

随着我国金融科技行业的发展&#xff0c;当前的数据治理水平已无法满足金融反哺实体经济发展的效率需要。 目前主要存在数据基础设施不完善导致的治理根基薄弱核心问题&#xff0c;建议从以下四个方面进行完善数据基础设施&#xff0c;构筑金融科技数据治理体系。 加强顶层设计…

Springboot整合RabbitMQ并使用

1、Springboot整合RabbitMQ 1、引入场景启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>引入AMQP场景启动器之后&#xff0c;RabbitAutoConfiguratio…

变电站应用监控系统6大优势,你知道几个?

变电站是改变电压、控制和分配电能的场所&#xff0c;发展方向是自动化、数字化、网络化、智能化。 泛地缘科技针对电力行业用户的使用特点&#xff0c;利用电网现有的网络资源&#xff0c;推出集动力监控、环境监理、门禁系统、消防系统、视频监控于一身的物联网云盒监控系统。…

05-思维导图Xmind快速入门

文章目录5.1 认识思维导图5.2 Xmind的主要结构及主题元素5.2.1 Xmind的多种结构5.2.2 主题分类5.2.3 Xmind的主题元素章节总结5.1 认识思维导图 什么是思维导图&#xff1f; 思维导图是一种将思维进行可视化的实用工具。 具体实现方法是用一个关键词去引发相关想法&#xff0…

Hive实战 --- 电子商务消费行为分析

目录 数据结构 Customer表 Transaction表 Store表 Review表 上传数据 创建目录用于存放数据 把本地文件上传到HDFS上 创建外部表 创建数据库 创建表 数据清洗 对transaction_details中的重复数据生成新ID 过滤掉store_review中没有评分的数据 找出PII (personal …

位图/布隆过滤器/海量数据处理方式

位图 位图的概念 所谓位图&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于海量数据&#xff0c;数据无重复的场景。通常是用来判断某个数据存不存在的。 直接来看问题&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0…

Gradle+SpringBoot多模块开发

关于使用Gradle结合SpringBoot进行多模块开发。 本来是打算使用buildSrc之类的&#xff0c;但是感觉好像好麻烦&#xff0c;使用这种方法就可以实现&#xff0c;没必要采用其他的。 我不怎么会表述&#xff0c;可能写的跟粑粑一样&#xff0c;哈哈哈哈 这是我的项目地址。 存在…

Java速成篇-Day01笔记

提示&#xff1a;这里只记录我个人不熟悉的知识&#xff0c;并非所有内容 笔记目录课程&#xff1a;04-第一行代码① jshell② 对象.方法课程&#xff1a;05-第一份源码① Java开发程序的流程② 入口方法课程&#xff1a;06-常见问题-中文乱码① 乱码原因② 解决方法课程&#…

【基础算法】单链表的OJ练习(4) # 分割链表 # 回文链表 #

文章目录前言分割链表回文链表写在最后前言 本章的OJ练习相对前面的难度加大了&#xff0c;但是换汤不换药&#xff0c;还是围绕单链表的性质来出题的。我相信&#xff0c;能够过了前面的OJ练习&#xff0c;本章的OJ也是轻轻松松。 对于OJ练习(3)&#xff1a;-> 传送门 <…

华为OD机试题,用 Java 解【单词反转】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

在 Docker 安装 Oracle12

说明 单独在Linux上安装Oracle很繁琐&#xff0c;首先需要安装各种依赖&#xff0c;其次安装如果失败了&#xff0c;重新配置安装也挺麻烦&#xff0c;所以如果是开发或者测试的时候使用Docker来进行安装会非常的方便。 搜索了很多的oracle相关镜像&#xff0c;选择一个适合自…

【Linux】-- 基本指令

目录 用户管理 adduser passwd userdel pwd ls指令 -l -a -d -F -r -t -R -1 which alias ll ls -n cd cd - cd ~ touch -d stat mkdir -p rmdir rm -r -f man cp ​编辑 -r -f mv cat -n tac more less -N head tail | 管道 dat…

Cookies与Session

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

JavaScript基础六、函数

零、文章目录 文章地址 个人博客-CSDN地址&#xff1a;https://blog.csdn.net/liyou123456789个人博客-GiteePages&#xff1a;https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee&#xff1a;https://gitee.com/bluecusliyou/TechLearnGithub&#xff1a;https:…

Deploy Workshop|DIY部署环境,让OceanBase跑起来

2023 年 3 月 25 日&#xff0c;我们将在北京开启首次 OceanBase 开发者大会&#xff0c;与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势&#xff0c;分享全新的产品 Roadmap&#xff0c;交流场景探索和最佳实践&#xff0c;此外&#xff0c;OceanBase 开源技术全…

Qt多线程文件查找器

⭐️我叫恒心&#xff0c;一名喜欢书写博客的研究生在读生。 原创不易~转载麻烦注明出处&#xff0c;并告知作者&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 这是一篇近期会不断更新的博客欧~~~ 有什么问题的小伙伴 欢迎留言提问欧。 Qt多线程文件查找器 前言 最近…

JUC并发编程——wait-notify

目录一、wait / notify1.1 wait / notify 原理1.2 wait / notify API介绍二、wait VS sleep三、wait / notify —代码改进一、wait / notify 1.1 wait / notify 原理 ● Owner线程发现条件不满足&#xff0c;调用wait( )方法即可进入WaitSet变为 WAITING状态 ● BLOCKED 和 W…

AI的简单介绍

什么是AI&#xff1f; AI 是 Artificial Intelligent 的缩写&#xff0c;是我们通常意义上说的人工智能。 简单来说就是让机器能够模拟人类的思维能力&#xff0c;让它能够像人一样感知、思考甚至决策。 为什么要开发AI&#xff1f; 因为在过去&#xff0c;都是我们学习机器…