当前位置: 首页 > ops >正文

案例 ss

代码

#!/usr/bin/env python3.5
# -*- coding: utf-8 -*-#import matplotlib.pyplot as plt
import sys
import csv## 计算两个文件中 战功增量 为0的 人员个数,并得出 两文件间势力增长值
class CaculateZG :def __init__(self,path1,path2):## 读取 两个文件内容,"成员","战功本周","战功总量","势力值"data1 = self.ReadFileData(path1)data2 = self.ReadFileData(path2)print("Read data ok")## 计算两 文件中 战功本周 之差,输出结果为0 的 值zg_d0 = self.Caculate(data1,data2)print("Caculate ok")## 将 值 写入 文件self.WriteData(zg_d0)print("WriteData ok")def WriteData(self,data) :with open("output.csv", "w",newline="",  encoding='utf-8-sig') as file:fieldnames = ["成员", "文件1 战功本周", "文件1 战功总量","文件1 势力值","文件2 战功本周", "文件2 战功总量","文件2 势力值","势力增量"]writer = csv.DictWriter(file, fieldnames=fieldnames,delimiter=",")writer.writeheader()  # 写入表头writer.writerows(data)def Caculate(self,data1,data2) :zg_d0 = []for key in data2:if key in data1: zg_1 = float(data1[key][0])zg_2 = float(data2[key][0])delta_zg =  zg_2 - zg_1if(delta_zg ==0) :ss = {"成员":key,"文件1 战功本周":data1[key][0],"文件1 战功总量":data1[key][1],"文件1 势力值":data1[key][2],"文件2 战功本周":data2[key][0],"文件2 战功总量":data2[key][1],"文件2 势力值":data2[key][2],"势力增量":float(data2[key][2]) - float(data1[key][2])}zg_d0.append(ss)return zg_d0def ReadFileData(self,path):with open(path, 'r', encoding='utf-8') as files:line = files.readline()sstr = line.split(", ")print(sstr)key_str = ["\ufeff成员","战功本周","战功总量","势力值"]key_index = []result = {}for data in key_str :index = sstr.index(data)key_index.append(index)print("key_index", key_index)            line = files.readline()while line :sstr = line.split(", ")result[sstr[key_index[0]]] = [sstr[key_index[1]],sstr[key_index[2]],sstr[key_index[3]]]line = files.readline()return result## 主函数
if __name__ == "__main__":path1 = "data1.csv"path2 = "data2.csv"if len(sys.argv) < 3 :print("未提供两个文件使用默认文件")else :## 输入的两个文件名path1 = sys.argv[1]path2 = sys.argv[2]CaculateZG(path1,path2)

Window 运行

python.exe .\zhangong_delta.py  .\同盟统计2025年05月13日20时13分38秒.csv .\同盟统计2025年05月13日21时59分46秒.csv
http://www.xdnf.cn/news/6205.html

相关文章:

  • linux-信号保存和处理
  • linux-进程信号捕捉
  • 继续预训练 LLM ——数据筛选的思路
  • Linux重定向与缓冲区
  • AI时代的弯道超车之第七章:如何用AI赋能创业?
  • 缺乏自动化测试,如何提高测试效率
  • 酒店旅游类数据采集API接口之携程数据获取地方美食品列表 获取地方美餐馆列表 景点评论
  • CodeBuddy Craft,我的编程搭子
  • element基于表头返回 merge: true 配置列合并
  • Oracle版本、补丁及升级(12)——补丁及补丁集
  • REVERSE学习笔记(攻防世界xxxorrr)
  • 【Java学习笔记】==运算符
  • 解决常见数据库问题:保障数据安全与稳定的全方位指南
  • 模板源码建站、定制建站和SaaS 建站有什么区别?企业建站应该怎么选?
  • C++引用编程练习
  • XILINX-DDR4-自定义componet(x8)-之一
  • 六西格玛觉醒:一场数据思维的启蒙运动​
  • 【江苏省】《信息技术应用创新软件适配改造成本评估规范》(DB32/T 4935-2024)-标准解读系列
  • 【Linux Nano Vim快捷键大全】
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的康复训练机器人技术方案‌
  • Linux下批量提取子文件夹文件到当前目录
  • libmemcached库api接口讲解二
  • 股指期货套期保值怎么操作?
  • 【Linux】shell内置命令fg,bg和jobs
  • tensorflow安装及简单例程学习
  • 字符田字格绘制
  • Java的多线程笔记
  • 企业报表平台如何实现降本增效
  • requestAnimationFrame 与 requestIdleCallback 对比
  • JavaScript中执行上下文和执行栈是什么?