python的N个小功能(更新文件)

# -*- 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 = r‘one.txt‘
otherFile = r‘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

时间: 2024-10-17 17:28:42

python的N个小功能(更新文件)的相关文章

python的N个小功能(文件内容的匹配替换)

# -*- coding: utf-8 -*- """ Created on Fri Feb 17 20:25:05 2017 @author: who """ import os import os.path import re import string rootdir=r'D:\test' for parent, dirnames, filenames in os.walk(rootdir):   # 三个参数:分别返回1.父目录 2.所有

python的N个小功能(连接数据库并下载相应位置的图片)

##############################################################################################################连接数据库, mysqldb.py########################### ############################################################################### # -*- coding: u

python的N个小功能之正则匹配

1.. 匹配任意除换行符"\n"外的字符:2.*表示匹配前一个字符0次或无限次:3.+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复,惰性匹配:4. .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复.如:a.*?b匹配最短的,以a开始,以b结束的字符串.如果把它应用于aabab的话,它会匹配aab和ab. 案例1line="2017-01-26 12:55:30-INFO"LogTime = re.compi

小例子: 更新文件或文件夹中所有文件的时间戳(find + touch)

find 目錄 -type d -exec touch {} \; echo "touch 目錄 folders endin" find 文件 -type f -exec touch {} \; echo "touch 文件 files endin"

python的N个小功能(找到要爬取的验证码链接,并大量下载验证码样本)

# -*- coding: utf-8 -*- """ Created on Mon Mar 21 11:04:54 2017 @author: sl """ import requests import time ################################################################################# ################先找到对应的爬取验证码连接,例如我要爬

常用小功能总结-不定时更新

Windows下使用eclipse开发android应用,搭配好模拟器等环境. 1.eclipse智能提示设置. 1)Windows→Preferences→Java→Editor→Content Assist 把200毫秒的时间改成20 2)Windows→Preferences→Java→Editor→Content Assist 然后修改:Auto Activation triggers for java的默认值“.”为".abc". 接着File→Export→Preferen

C#、Java中的一些小功能点总结(持续更新......)

前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGridView表头的排序功能 1 /// <summary> 2 /// 禁止点击列表头进行排序 3 /// </summary> 4 /// <param name="dgv">当前DataGridView控件</param> 5 private

python实现简单的循环购物车小功能

python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s", 5000), ("book python", 81), ("iwach", 3200), ("电视机", 2200) ] def zero(name): if len(name) == 0: print("\033[31;1m您的输

NSFileManager文件操作的十个小功能

NSFileManager是一个单列类,也是一个文件管理器.可以通过NSFileManager创建文件夹.创建文件.写文件.读文件内容等等基本功能. 下面将介绍NSFileManager文件操作的十个小功能.我们在Documents里面进行举例,首先是获取Documents的路径.这个在iOS开发之沙盒机制(SandBox)已经详细讲解过了.获取Documents路径方法如下: - (NSString *)getDocumentsPath { //获取Documents路径 NSArray *p