Python----不同类型文件读取操作大全
0.说明
该文件包含了
(1)open内置函数基本使用 即 txt文件的读写操作
(2)open内置函数基本使用 即 jmx文件读取
(3)csv文件读写操作
(4)json模块基本使用
(5)json文件读写操作
(6)ini文件读写操作
(7)Excel文件读写操作
(8)yaml模块基本使用
(9)yaml文件读写操作
1.open内置函数基本使用 即 txt文件的读写操作
官网:https://docs.python.org/zh-cn/3/library/functions.html#open
目录操作,可参考:https://www.cnblogs.com/Z-Queen/p/14425487.html
# open函数 # 读取文件和写入文件 import os # 目录操作 # 文件写入 directory_dir =os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1.txt') # 文件若不存在,则会创建文件 with open(file_dir,encoding='utf-8',mode='w') as file: file.write('你好\n') file.writelines(['11111\n','22222\n']) file.write('张三与李四') # 文件读取 with open(file_dir,encoding='utf-8',mode='r') as file: # print('读取所有的内容:',file.read()) lines = file.readlines() # ['你好\n', '11111\n', '22222\n', '张三与李四'] print('读取所有的内容,返回list数据:',lines)
运行结果:
2.open内置函数基本使用 即 jmx文件的读写操作
""" 文件处理类 """ class FileHandler: # 读取jmeter脚本jmx文件 def read_jmx(self,file_dir): with open(file_dir,encoding='utf-8',mode='r') as file: content = file.read() return content # 调试代码 d = FileHandler().read_jmx("D:/apache-jmeter-5.0/bin/jb/Test.jmx") print(d)
3.csv文件读写操作
csv文件操作可参考:https://www.cnblogs.com/Z-Queen/p/14434135.html
3.1 使用list方式写入和读取
# csv文件操作 # 读取文件和写入文件 # 使用list方式写入和读取 import csv import os # 文件写入 directory_dir = os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1_list.csv') # 文件若不存在,则会创建文件 print(file_dir) # newline='' 插入的时候不换行 with open(file_dir,mode='w',encoding='utf-8',newline='') as file: # 写入文件类 fw = csv.writer(file) fw.writerow(['111','aaaaa']) fw.writerow(['222','bbbbb']) fw.writerows([('33','cc'),('44','dd'),('55','ee')]) # 文件读取 with open(file_dir,mode='r',encoding='utf-8') as file: rf = csv.reader(file) for line in rf: print(line)
运行结果:
3.2 使用dict方式写入和读取
# csv文件操作 # 读取文件和写入文件 # 使用dict方式写入和读取 import csv import os directory_dir = os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1_dict.csv') # 文件若不存在,则会创建文件 print(file_dir) # 文件写入 with open(file_dir,mode='w',encoding='utf-8',newline='') as file: wf = csv.writer(file) wf.writerow(['a1','aa11']) wf.writerow(['b2','bb22']) wf.writerows([('c3','cc33'),('d4','dd44'),('e5','ee55')]) # 文件读取 with open(file_dir,mode='r',encoding='utf-8',newline='') as file: rf = csv.reader(file) for line in rf: print(line)
运行结果:
4.json模块基本使用
官网:https://docs.python.org/zh-cn/3/library/json.html
# json模块基本使用 import json aa = ['hello',{'name':'zhangsan'}] # dumps() 把其他类型的数据转换为字符串类型 jstr = json.dumps(['hi',{'pwd':'123456'}]) print(type(aa),aa) # <class 'list'> ['hello', {'name': 'zhangsan'}] print(type(jstr),jstr) # <class 'str'> ["hello", {"name": "zhangsan"}] # loads() 把字符串解析为python对应格式 print('-----------------------loads() 用法----------------------------') ls = json.loads('["hello", {"username": "xiaoming"}]') print('列表类型的字符串:',ls,type(ls)) dit = json.loads('{"pwd": "111111"}') print('字典类型的字符串:',dit,type(dit))
运行结果:
5.json文件读写操作
官网:https://docs.python.org/zh-cn/3/library/json.html
# json文件操作 # 读取文件和写入文件 import json import os directory_dir = os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1.json') # 文件若不存在,则会创建文件 test_data = { "id":1, "test_steps":[ "1.打开浏览器", "2.输入用户信息" ] } # 文件写入 with open(file_dir,mode='w',encoding='utf-8') as file: json.dump(test_data,file) # 文件读取 with open(file_dir,mode='r',encoding='utf-8') as file: data = json.load(file) print('读取的json内容为:',type(data),data)
运行结果:
6.ini文件读写操作
官网:https://docs.python.org/zh-cn/3/library/configparser.html
# ini文件操作 # 读取文件和写入文件 import os import configparser # 实例化对象 config = configparser.ConfigParser() config['Default'] = { "IP":"127.0.0.1", "port":3000 } config['uat'] = { "IP": "192.168.1.101", "port": 2000 } directory_dir = os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1.ini') # 文件若不存在,则会创建文件 # 写入文件 with open(file_dir,mode='w',encoding='utf-8') as file: config.write(file) # 读取文件 config_r = configparser.ConfigParser() config_r.read(file_dir) r_data = {} for section in config_r.sections(): print('11111',section,config_r[section]) r_data[section] = {} for key in config_r[section]: r_data[section][key] = config_r[section][key] print('00000',key,config_r[section].get(key)) print('读取的文件内容:',r_data)
运行结果:
7.Excel文件读写操作
pip install openpyxl #安装openpyxl库,对使用openpyxl模块对Excel文件进行处理(读,写)
官网:https://openpyxl.readthedocs.io/en/stable/
excel文件读写,可参考:https://www.cnblogs.com/Z-Queen/p/14440966.html
from openpyxl import Workbook # 写入文件导入的第三方库 from openpyxl import load_workbook # 读取文件导入的第三方库 from openpyxl.worksheet.worksheet import Worksheet # 读取文件导入的第三方库 import os directory_dir = os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1.xlsx') # 文件若不存在,则会创建文件 # 写入文件 wb = Workbook() worksheet = wb.create_sheet('lianxi') # 创建sheet表单 worksheet.append(['name','pwd']) for i in range(5): worksheet.append([f'user{i}',f'{i}{i}{i}']) wb.save(file_dir) # 保存文件 # 读取文件 wb_r = load_workbook(file_dir) print('获取文件中sheet名称:',wb_r.sheetnames) # :Worksheet 指明ws的类型,获取对应sheet表单的内容 ws:Worksheet = wb_r['lianxi'] data = [] # 获取每一行的内容 for row in ws.values: data.append(row) print(data)
运行结果:
8.yaml模块基本使用
pip install pyyaml #安装pyyaml库,对使用yaml模块对yaml文件进行处理(读,写)
yaml语言教程:http://www.ruanyifeng.com/blog/2016/07/yaml.html
pyyaml文档: https://pyyaml.org/wiki/PyYAMLDocumentation
import yaml # yaml 解析数据 ww = { "name":'xiaoming', 'age':20 } data = """ - Cat - Dog - Goldfish """ # safe_dump() 把其他类型的数据转换为字符串类型 ww1 = yaml.safe_dump(ww) print('解析之前的数据:',type(ww),ww) print('解析之后的数据:',type(ww1),ww1) # safe_load() 把字符串解析为python对应格式 data1 = yaml.safe_load(data) print('解析之前的数据:',type(data),data) print('解析之后的数据:',type(data1),data1)
运行结果:
9.yaml文件读写操作
pip install pyyaml #安装pyyaml库,对使用yaml模块对yaml文件进行处理(读,写)
yaml语言教程:http://www.ruanyifeng.com/blog/2016/07/yaml.html
pyyaml文档: https://pyyaml.org/wiki/PyYAMLDocumentation
# yaml文件操作 # 读取文件和写入文件 import os import yaml directory_dir = os.path.abspath(os.path.join(os.getcwd(),'')) # 获取当前文件所在的目录 file_dir = os.path.join(directory_dir,'1.yaml') # 文件若不存在,则会创建文件 data = { 'data':[1,2,3,4,5], "name":'xiaoming', 'age':20 } # 文件写入 with open(file_dir,mode='w',encoding='utf-8') as file: yaml.safe_dump(data,file) # 文件读取 with open(file_dir,mode='r',encoding='utf-8') as file: read_yaml = yaml.safe_load(file) print('读取的文件内容:',read_yaml)
运行结果: