ioutils
2024-08-31 18:48:42
import yaml
import json
import csv
import configparser class IoUtils(object): """
dependency: pip install pyyaml yaml_r: read yaml ,return dict yaml_w: write yaml,data type is dict json_r: read json file ,return dict json_w: write json file ,data type is dict csv_r: read csv file ,return list format is:
[
[header],
[column1,column2,....],
.....
] csv_w: write data into csv file
data format is :
[
[],[],
......
]
or like this format:
[
(),()
......
] read_config: read ini file :
return items of section or object of config or only option value """ def yaml_r(self, filepath) -> dict:
with open(filepath, 'r') as f:
data = yaml.load(f, Loader=yaml.Loader)
return data def yaml_w(self, filepath, data: dict):
with open(filepath, 'w', encoding="utf-8") as f:
yaml.dump(data, f) def json_r(self, filepath) -> dict:
with open(filepath, 'r+')as f:
return json.load(f) def json_w(self, filepath, data: dict):
with open(filepath, "w+", encoding="utf-8")as f:
json.dump(data, f, indent=2, ensure_ascii=False) def csv_r(self, csv_path) -> list: with open(file=csv_path, mode="r")as f:
data = csv.reader(f, dialect='excel', delimiter=',', quotechar='|')
data_set = [i for i in data]
return data_set def csv_w(self, csv_path, data):
with open(file=csv_path, mode='w', newline='')as f:
wt = csv.writer(f)
wt.writerows(data) def readConfig(self, filepath, section=None, option=None,
section_only=False, option_only=False,):
config = configparser.ConfigParser()
config.read(filepath)
if section and section_only:
return config.items(section)
if option and option_only:
return config.get(section=section,option=option)
if not section_only and not option_only:
return config def opens(self, filepath, mode, data=None):
"""r or w file """
if mode == "r" or mode == "r+":
with open(filepath, mode)as file:
lines = file.readlines()
return lines
if mode == "w" or mode == "r+" and not data:
with open(filepath, mode)as file:
file.write(data)
io
最新文章
- .NET 获取客户端的操作系统版本、浏览器版本和IP地址
- iOS开发之CocoaLumberjack
- html5基础知识点
- java中的条件语句(if、if...else、多重if、嵌套if)
- Consul Template的简单使用
- ASP.NET MVC电子书下载
- asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天
- 曲线救国,解决Mac系统下,Android sdk下载失败的问题
- 巧用test判断来写shell脚本
- Search Bars(一个)
- Python日期操作
- .bat文件设置IP、DNS
- python3 今日大纲 day05
- LayaBox IDE 安装后执行项目报错解决方案的一些记录
- B - 考试排名
- 05. pt-diskstats
- Oracle截取字符串函数和查找字符串函数,连接运算符||
- WPF DataGrid 分组
- python基础===map和zip的用法
- Mysql 求时间 between 昨天 and 上个月的今天 等时间函数