zoukankan      html  css  js  c++  java
  • python常用功能总结

    经常写python,但很多小的点都记不住,每用必查,总结下来,下次查自己的吧。

    1.时间获取:

    import time
    print  time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
    结果:2016-10-10 22:25:26
     
    2.http发送post请求
    import urllib
    import urllib2

      try:

            post_map = {}

            tags_map = {}

            sql_map = {}

            sql_map["host"] = "10.218.145.123"

            sql_map["user"] = "root"

            sql_map["passwd"] = "123456"

            sql_map["db"] = "hdploy"

            sql_map["port"] = 3306

            tags_map["product"] = "search.offline.maindump"

            tags_map["sql_connetc"] = sql_map

            post_map["metric"] = "deploy.offline.et2main.maindump"

            post_map["tags"] = tags_map

            new_map = JSONEncoder().encode(post_map)

            url = 'http://10.97.212.17:9991'

            post_data = urllib.urlencode(post_map)

            req = urllib2.Request(url)

            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())

            response = opener.open(req, new_map)

            result = json.loads(response.read())

            for key in result://根据返回的结果进行解析

                if "version" in key.keys():

                    versions = key["version"]

                    version = versions.split("|")

                    return version[0][-9:]

        except Exception, e:

            print e

            return 1

    3.获取当前文件所在目录:

    WORK_HOME = os.path.realpath(sys.path[0])

    4.在python中获取执行命令的输出和执行结果:

    import commands

    (status, output) = commands.getstatusoutput(cmd)

    弊端:output只有在cmd命令执行完才能输出

    另一种方式:

    import os

    ret=os.system(cmd)

    这种方式可以立即输出cmd的执行输出,但这个输出会输出到终端,无法获取,ret为名利执行的返回值

    5.python中访问mysql:

        conn = MySQLdb.connect(host= port=3336, user=, passwd=)

        cursor = conn.cursor()

        cursor.execute(sql)

        conn.commit()

        conn.close()

        print 'Execute SQL[%r] Successed!'%sql

        return cursor.fetchall()  返回值为tuple,如果只有一条记录,会返回形如(("",""),)

    6.zookeeper操作:

    class :

        def __init__(self,host):

            self.host = host

            self.connected = False

            self.handle = -1 

            self.callback_flag = False

            self.cv = threading.Condition()

            self.connected = False

                

            def connection_watcher(handle, type, state, path):

                self.cv.acquire()

                self.connected = True

                self.cv.notify() 

                self.cv.release()

            self.cv.acquire()

            self.handle = zookeeper.init(self.host, connection_watcher)

            self.cv.wait(15.0)

            self.cv.release()

            if not self.connected:

                raise Exception("Couldn't connect to host -", self.host)

        def __del__(self):

            if self.connected:

                zookeeper.close(self.handle)

    def GetZKValue(zk_host, path)://获取zk路径对应的value

        zku =     if(zookeeper.exists(zku.handle,path) !=None):

            (data,stat) = zookeeper.get(zku.handle, path, None)

            return data

        else:

            return ""

    7.更新json格式的文件:

    def UpdateConf(conf, key, value):  //conf为json格式的文件名,key为要更新的key,value为更新后的值

        conf_file = file(conf)

        conf_value = json.load(conf_file)

        conf_value[key] = value

        new_file = open(conf,'w')

        new_file.write(json.dumps(conf_value,ensure_ascii=False, indent = 4, separators = (',',':')))

        new_file.close()

  • 相关阅读:
    C++中字符数组和字符指针问题
    C++中的常量指针和指针常量
    C++中指针形参问题
    Xcode视图调试Debug View Hierarchy
    第3章 程序的机器级表示(深入理解计算机系统)
    第2章 信息的表示和处理(深入理解计算机系统)
    第1章 计算机系统漫游(深入理解计算机系统)
    用gcc编译.cpp文件可能出现"undefined reference to `__gxx_personality_v0'"问题的解决
    第12章 并发编程(深入理解计算机系统)
    第11章 网络编程(深入理解计算机系统)
  • 原文地址:https://www.cnblogs.com/aiwa/p/5947591.html
Copyright © 2011-2022 走看看