python的N个小功能(更新文件)
##########################################################################
#对于第二份文件:第一份与第二份不相同,以第二份为主;
#第一份存在,第二份不存在,修改为0;第一份不存在,第二份存在,以第二份为主
##########################################################################
# -*- coding: utf-8 -*-
"""
Created on Wed Feb 22 13:40:03 2017
@author: Administrator
"""
import sys
def readFile(filename): ##读文件
re = {}
for line in open(filename):
arr = line.strip().split('\t') # s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符;
#1. 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
#2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉
if len(arr)<=2:
continue
key = arr[0] + '_' + arr[1]
re.setdefault(key, arr[2]) #dict.setdefault(key, default=None),
#key——查找的键值;default——键不存在时,设置的默认键值
return re
def Minus(baseFile, otherFile): #对于第二份文件:第一份与第二份不相同,以第二份为主;
#第一份存在,第二份不存在,修改为0;第一份不存在,第二份存在,以第二份为主
re = {}
baseDict = readFile(baseFile)
otherDict = readFile(otherFile)
for k,v in baseDict.items():
if k in otherDict:
if not baseDict[k].isdigit() or not otherDict[k].isdigit():
continue
c = int(baseDict[k]) - int(otherDict[k])
if c != 0:
re[k] = otherDict[k]
continue
if k not in otherDict:
if not baseDict[k].isdigit() :
continue
c = 0
re[k] = str(c)
continue
for k,v in otherDict.items():
if k not in baseDict:
if not otherDict[k].isdigit():
continue
re[k] = otherDict[k]
return re
def writeFile(baseDict):
for k,v in baseDict.items(): #dict = { 1 : 2, 'a' : 'b', 'hello' : 'world' }
#dict.items() [('a', 'b'), (1, 2), ('hello', 'world')]
arr = k.split('_')
print "%s\t%s\t%s" % (arr[0], arr[1], v)
def main():
#baseFile = sys.argv[1]
#otherFile = sys.argv[2]
baseFile = r'G:\pythoncode\one.txt'
otherFile = r'G:\pythoncode\two.txt'
baseDict = Minus(baseFile, otherFile)
writeFile(baseDict)
if __name__=='__main__':
main()
#####################################################
######################案例###########################
one.txt
1 2 3
4 5 6
7 8 9
10 11 12
two.txt
1 2 3
7 8 9
10 11 8
13 14 15
输出
13 14 15
10 11 8
4 5 0
转载于:https://www.cnblogs.com/dudumiaomiao/p/6431166.html
python的N个小功能(更新文件)相关推荐
- python 换算美分的小功能
python 写了个小功能, 取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币.硬币有1美分,5美分,10美分,25美分4种.举例来说,0.76美元换算结果应该是3枚25美分,一枚1美分.类 ...
- 【Python】猜数小游戏(文件操作)
人生苦短,我用Python 关键词 1.多用户 2.字典记录所有成绩 3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮 字典Dictionary.列表List.元组Tuple差异化 ...
- 超好用Python小功能(持续更新中)
文章目录 一.字符串操作小功能 1.把数字转为千位数值类型 2.检测字符串是不是纯数字 3.python列表的交.并.差集 4.对列表中字典中的字典排序 5.python 求角度大小 6.已知一个点, ...
- ftp客服端实现自动更新文件(带更新完自动启动功能)-python
ftp客服端实现自动更新文件(带自动启动功能并封装为带配置文件的工具)-python 前言 一.项目环境和结构 二.使用介绍 三.程序封装和注册服务 四.填坑(希望读者能用到) 总结 前言 由于工位机 ...
- Unity3D小功能 小技巧 小教程 小原理(持续更新...)
Unity3D小功能 小技巧 小教程 小原理(持续更新...) 1.Unity的.NET版本是2.0 按道理来说,C#能用的功能Unity也能用,但是Unity的.NET却不是最新版 要是用一些别的D ...
- 生成msk文件的用处_Yotta企业云盘“小”功能大用处企业办公好伙伴
Yotta企业云盘"小"功能大用处企业办公好伙伴 对于传统的数据存储,Yotta企业云盘可以很好的超越传统存储所面临的挑战. 1.支持本地文件多个同时上传:在网盘中,在需要上传文件 ...
- python10分钟处理表格_使用python对excel表格处理的一些小功能
python对excel表格处理的一些小功能 功能概览pandas库的一些应用文件读入计算表格中每一行的英文单词数简单用textblob进行自然语言情感分析判断一行中是不是有两列值都与其他行重复(可推 ...
- python小功能 模拟下载进度条打印
python小功能 模拟下载进度条打印 #!/usr/bin/env python3 # -*- coding:utf-8 -*-import timedef progress(arg):if arg ...
- 文件不能断点 webstorm_详解python使用金山词霸的翻译功能(调试工具断点的使用)...
这篇文章主要介绍了详解python使用金山词霸的翻译功能(调试工具断点的使用),本文给大家介绍得非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 今天试着用python获取金山 ...
最新文章
- jenssen不等式的证明
- java之七 高级类设计
- 802.1X和NAP整合实验手册
- php5.4.13.tar.bz2,编译安装PHP-5.4.13
- (day 43 - 二分查找 ) 剑指 Offer 53 - II. 0~n-1中缺失的数字
- Apache详解(五)WEB相关工具
- Python爬取招聘网站岗位信息
- error C2048 :int main()无法重载/已存在主体
- HC05蓝牙模块使用
- LeCun:赋予机器 “常识” ,重新设计神经网络将是AI 研究重点
- vue 项目获取QQ音乐歌单数据
- PointNet 翻译:
- 用signalr实现简单的网页实时聊天
- Ltspice测量波形的相关数据
- 微信交易单号和订单号的区别
- Retrofit+协程使用填坑和优化
- 资深HR告诉你,面试中你不知道的那些秘密!
- 使用存储过程实现循环更新3组数组中的数据
- 2021年6月PMP考点
- 基于Tor网络的HTTP代理搭建过程