python读取txt、csv以及xml文件

深藏阁楼爱情的钟 2022-06-01 05:14 405阅读 0赞

1、读取txt文件

  1. txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式:
  2. \* read(): 读取整个文件
  3. \* readline(): 读取一行数据
  4. \* readlines(): 读取所有行的数据
  5. 假设user\_info.txt文件内内容如下:
  6. user\_info.txt
  7. zhangsan123
  8. lisi456
  9. wangwu789
  10. 首先需要将用户名和密码按行写入txt文件中,这里把用户名和密码用逗号“,”隔开。
  11. 读取txt文件代码如下:
  12. txt\_read.py
  13. #-*-coding:utf-8-*-
  14. # 读取txt文件
  15. user_file = open('user_info.txt','r')
  16. lines = user_file.readlines()
  17. for line in lines:
  18. username = line.split(',')[0]
  19. password = line.split(',')[1]
  20. print(username,password)

2、读取csv文件

  1. 假设现在每次要读取的是一组用户数据,这一组数据包括用户名、邮箱、年龄、性别等信息,这时再使用txt文件存放数据,读取起来就没那么方便了。对于这种类型的数据可以通过CSV文件来存放。
  2. 创建info.csv文件,首先通过WPS表格或Excel创建表格,文件另存为CSV文件进行保存。**注意不要直接修改文件的后缀名来创建CSV文件**,这样创建的并非真正的csv类型的文件,如下图所示。
  3. info.csv

![Image 1][]SouthEast

  1. 程序如下:
  2. csv.py
  3. #-*-coding:utf-8-*-
  4. # 读取csv 文件
  5. ###########################################
  6. import csv # 导入csv 包
  7. # 读取本地 CSV 文件
  8. date = csv.reader(open('csv_read.csv','r'))
  9. # 循环输出每一行信息
  10. for user in date:
  11. print(user) # 取某行数据,print(user[0])

3、读取xml文件

有时候我们需要读取的文件不是规则的。例如,我们需要一个配置文件来配置当前自动化测试脚本的URL、浏览器、登录的用户名和密码等,这时候就可以考虑选择使用XML文件来存储这些信息。

  1. xml文件info.xml,可以通过新建txt改后缀为xml创建xml文件,假设info.xml文件内容为:
  2. ![SouthEast 1][]
  3. 代码如下:
  4. xml\_read.py
  5. #-*-coding:utf-8-*-
  6. from xml.dom import minidom # 导入xml的minidom模块,用来处理XML文件
  7. # 打开xml文档
  8. dom = minidom.parse('info.xml') # parse用于打开一个XML文件
  9. # 得到文档元素对象
  10. root = dom.documentElement # documentElement用于得到XML文件的唯一根元素
  11. # print(root.nodeName) # nodeName为节点名称
  12. # print(root.nodeValue) # nodeValue为节点的值
  13. # print(root.nodeType) # 节点的类型
  14. # print(root.ELEMENT_NODE)
  15. # 获得任意标签名
  16. ################################################################################
  17. # tagname = root.getElementsByTagName('browser') # getElementsByTagName()可以通过标签名获取标签,以数组形式存放
  18. # print(tagname[0].tagName)
  19. # tagname = root.getElementsByTagName('province')
  20. # print(tagname[2].tagName)
  21. # tagname = root.getElementsByTagName('city')
  22. # print(tagname[2].tagName)
  23. logins = root.getElementsByTagName('login')
  24. #################################################################################
  25. # 获得标签对应的属性值,如获取login标签的username以及password属性
  26. #################################################################################
  27. # 获得第一个login标签的username属性值
  28. username = logins[0].getAttribute("username")
  29. print(username)
  30. # 获得第一个login标签的password属性值
  31. password = logins[0].getAttribute("password")
  32. print(password)
  33. # 获得第二个login标签的username属性值
  34. username = logins[1].getAttribute("username")
  35. print(username)
  36. # 获得第二个login标签的password属性值
  37. password = logins[1].getAttribute("password")
  38. print(password)
  39. #################################################################################
  40. # 获得标签对之间的数据
  41. #################################################################################
  42. provinces = dom.getElementsByTagName('province')
  43. citys = dom.getElementsByTagName('city')
  44. # 获取第二个province标签对的值
  45. province2 = provinces[1].firstChild.data #firstChild属性返回被选节点的第一个子节点,data表示获取该节点的数据
  46. print(province2)
  47. # 获取第一个city标签对的值
  48. city1 = citys[0].firstChild.data
  49. print(city1)
  50. # 获取第二个city标签对的值
  51. city2 = citys[1].firstChild.data
  52. print(city2)
  53. #################################################################################

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,405人围观)

还没有评论,来说两句吧...

相关阅读