• 十进制和ip地址互转函数
    • STDIN 方式编程
    • 使用python 批量筛选出日志中的ip地址
    • #时间处理模块
    • python正常时间和unix时间戳相互转换的方法
    • #sha1 算法
    • 文件下载hash目录存储
    • 遍历目录文件

python怎么实现发现所需目录不存在时新建目录

主要用python的os模块,代码如下:

import os
if not os.path.exists('foldername'):
    os.mkdir('foldername')

十进制和ip地址互转函数

import socket
import struct

def ip2long (ip):
    "将点分十进制 IP 地址转换成无符号的长整数"

    return struct.unpack("!I", socket.inet_aton(ip))[0]

def long2ip (lint):
    "将无符号长整形转换为点分十进制 IP 地址形式"

    return socket.inet_ntoa(struct.pack("!I", lint))
# STDIN 方式编程
# input comes from STDIN (standard input)
for line in sys.stdin:
    #print line
#判断需要的模块是否安装的方法
flask_socketio_installed = False
try:
    from flask_socketio import SocketIO, emit, disconnect
    flask_socketio_installed = True
except ImportError:
    logging.warning('Cannot import from flask_socketio: Do `pip3 install --user flask-socketio` to install\nProgram runs without flask_socketio, but without event monitoring')

eventlet_installed = False
try:
    import eventlet
    eventlet_installed = True
except ImportError:
    logging.warning('Cannot import from eventlet: Do `pip3 install --user eventlet` to install\nEvent monitoring works, but performance is decreased')
使用python 批量筛选出日志中的ip地址,代码如下
#做字段分割
strs=strs.split('|')
#做ip特征筛选匹配
for st in strs:
     if re.match('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', st) != None:
          print 'IP!' ,st
def ip2long (ip):
    "将点分十进制 IP 地址转换成无符号的长整数"
    import struct,socket
    return struct.unpack("!I", socket.inet_aton(ip))[0]


def long2ip (lint):
    "将无符号长整形转换为点分十进制 IP 地址形式"
    import struct,socket
    return socket.inet_ntoa(struct.pack("!I", lint))

#时间处理模块


import time
#获取当前时间
def getCurrentTime(self):
    return time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))

#获取当前时间
def getCurrentDate(self):
    return time.strftime('%Y-%m-%d',time.localtime(time.time()))

#获取N天前时间
def getCurrentDate(self):   
    reture time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()- 86400*7 ) )

python正常时间和unix时间戳相互转换的方法

# -*- coding: utf-8 -*-
import time
def timestamp_datetime(value):
 format = '%Y-%m-%d %H:%M:%S'
 # value为传入的值为时间戳(整形),如:1332888820
 value = time.localtime(value)
 ## 经过localtime转换后变成
 ## time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=53, tm_sec=40, tm_wday=2, tm_yday=88, tm_isdst=0)
 # 最后再经过strftime函数转换为正常日期格式。
 dt = time.strftime(format, value)
 return dt
def datetime_timestamp(dt):
  #dt为字符串
  #中间过程,一般都需要将字符串转化为时间数组
  time.strptime(dt, '%Y-%m-%d %H:%M:%S')
  ## time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=53, tm_sec=40, tm_wday=2, tm_yday=88, tm_isdst=-1)
  #将"2012-03-28 06:53:40"转化为时间戳
  s = time.mktime(time.strptime(dt, '%Y-%m-%d %H:%M:%S'))
  return int(s)
if __name__ == '__main__':
 d = datetime_timestamp('2012-03-28 06:53:40')
 print d
 s = timestamp_datetime(1332888820)
 print s

#更新日志记录

def  hive_log(job_id,message):
        job_task_id=job_id.split('-')
        job_task_id=job_task_id[0]

        connection = MySQLdb.connect( db_host  ,  db_user , db_passwd  ,db_db ,charset="utf8")       
        con = connection.cursor()
        print "hivelog--> %s %s" %(job_id,message)  
        hive_log_sql="update hivejob set status='%s'  ,statuslog=  concat (statuslog  , '-', '%s')   , endtime =now()  where job_id='%s'  " %(message , message ,job_id  )
        #print hive_log_sql
        count=con.execute( hive_log_sql)
        con.close()
import hashlib
#md5 算法
def get_md5_value(src):
    myMd5 = hashlib.md5()
    myMd5.update(src)
    myMd5_Digest = myMd5.hexdigest()
    return myMd5_Digest
#sha1 算法
def get_sha1_value(src):
    mySha1 = hashlib.sha1()
    mySha1.update(src)
    mySha1_Digest = mySha1.hexdigest()
    return mySha1_Digest

def downloadfile(url,filename):
    import urllib2
    #print "downloading with urllib2"
    #"url = 'http://www.pythontab.com/test/demo.zip' 
    try:
        f = urllib2.urlopen(url, timeout=10) 
        data = f.read() 
        with open(filename, "wb") as code:     
             code.write(data)
        f.close
        return  True 

    except:
        return  False 
#文件下载hash目录存储
def wget_file_hash(subjectname ,url ,imgfilename):   
        import sys ,os 
        ##判断临时目录是否存在
        hashdir=get_md5_value(imgfilename)
        subjectpah=sys.path[0]+'/../../sources/' +subjectname + "/" +hashdir[0] + hashdir[1] + "/"+hashdir[1] + hashdir[2] + "/"
        print subjectpah        
        if not os.path.isdir(subjectpah):
                 os.makedirs(subjectpah)

        print downloadfile(url,subjectpah + imgfilename)
#使用样例
#wget_file_hash("subjectdir" ,"http://www.duba.com/static/v2/images/blank.gif" ,"blank.gif")

遍历目录文件

for filename in os.listdir('.'):
    if os.path.isfile(filename):
        getExif(filename)

遍历文件夹下的所有文件

# os.walk()遍历文件夹下的所有文件
# os.walk()获得三组数据(rootdir, dirname,filnames)

print(os.path.basename(os.path.realpath(__file__)))
def file_path(path):
    for fpathe,dirs,fs in os.walk(path):
           for f in fs :
                print( os.path.join(fpathe,f))
file_path(path)

Welcome to PyJWT
https://pyjwt.readthedocs.io/en/latest/index.html

使用python 批量筛选出日志中的ip地址,代码如下

#做字段分割
strs=strs.split('|')
#做ip特征筛选匹配
for st in strs:
     if re.match('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', st) != None:
          print 'IP!' ,st
文档更新时间: 2020-09-03 07:54   作者:月影鹏鹏