Blog

  • python遍历dictionary

    如代码

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    dict={"a":"apple","b":"banana","o":"orange"}
    print "##########dict######################"
    for i in dict:
        print "dict[%s]=" % i,dict[i]
    print "###########items#####################"
    for (k,v) in dict.items():
        print "dict[%s]=" % k,v
    print "###########iteritems#################"
    for k,v in dict.iteritems():
        print "dict[%s]=" % k,v
    print "###########iterkeys,itervalues#######"
    for k,v in zip(dict.iterkeys(),dict.itervalues()):
        print "dict[%s]=" % k,v
    
  • python文件读写

    python写文件

    object_id_list=[1, 3, 88, 99]
    
    f=open('mylist', "w”)
    
    for id in object_id_list:
    
        f.writelines(str(id))
    
    f.close()   #只有输入这一句之后才会真正写入到文件中

    cat mylist

    有换行的时候

    138899%   # 最后有一个%表示没有换行
    >>> object_id_list=[1, 3, 88, 99]
    >>> f=open('mylist', "w")
    >>> for id in object_id_list:
    ...     f.writelines(str(id) + '\n')    # 换行
    ...
    >>> f.close()
    

    ➜  ~  cat mylist

    1
    3
    88
    99
    

    python读取json文件

    文件格式如下

    {
        "object_id": 430,
        "type": 23
    }
    
    object_id_read = open(object_id_file, "r")
    object_id_file_json = ''
    for line in object_id_read:
        object_id_file_json = object_id_file_json + line.strip('\n')
    data = json.loads(object_id_file_json)
    object_id = data['object_id']
    

    f.write 和 f.writelines有什么区别?

    f.read()
    f.readline()
    f.readlines()

  • python any判断一个对象是否为空

    any判断dict,list,tuple是不是为空

    >>> eth = {“eth0″:”192.168.1.1”}

    >>> any(eth)

    True

    >>> eth = {}

    >>> any(eth)

    False

  • python获取某目录下的所有文件和子目录-os.listdir

    有时候需要获取某目录下的所有文件和子目录,从stackoverflow搜到了一段代码,需要时可以使用。

    #!/usr/bin/python
    
    import os, sys
    
    # Open a file
    path = "/var/www/html/"
    dirs = os.listdir(path)
    
    # This would print all the files and directories
    for file in dirs:
       print file
    
  • 今天学习ruby sinatra slim

    ruby语言支持

    sinatra是web支持

    sinatra是通过Application.run!来启动服务器的

    slim是模板支持

    slim引入外部css和js             == stylesheet_link_tag “xxx”

    开发还是在vps上搞,方便

    http://kxh.github.com/Bootstrap_doc_in_chinese/scaffolding.html#layouts

    确定官方的文档有70%以上会了再去其他地方弄,弄来弄去还要去查官方的文档

    一个小入口上要付出很多努力,10次以上的试验

    http://blogs.ejb.cc/archives/2690/first-met-sinatra

  • ansible中的变量

    用ansible也有一段时间了,在使用模板和写playbook的时候变量很重要,整理一些常用的变量。

    #写到hosts文件中的主机名

    inventory_hostname

    ansible自带的setup模块检测出来的变量都可以直接使用,写几个常用的

    #系统发行分支

    ansible_distribution

    # 主机名

    ansible_hostname

    # 所有的cpu

    ansible_processor

    # 硬件型号

    ansible_product_name

    # 系统时间,会是一组不同方式表示的值

    ansible_date_time

    主机的fqdn,即 hostname -f ,得到的方法是

    ansible_fqdn
    python -c "import socket; print socket.gethostname()"
    python -c "import socket; print socket.gethostbyaddr('whatever_we_got_from_last_command')"

    主机名即 hostname

    ansible_nodename
    python -c "import platform; print platform.node()"

    item变量,配合with_items使用

    - name: install rpms
    yum: name={{ item }} disable_gpg_check=yes state=present
    
    with_items:
    - gcc
    - zlib
    

    #eth0的值

     ansible_eth0.ipv4.address