zoukankan      html  css  js  c++  java
  • python常用代码积累

     

    一、文件操作

    1、判断一个目录是否存在,若不存在则创建

        if not os.path.isdir(new_path):

            os.makedirs(new_path)

    2、新建一个文件

    f=open("filename",'w') 

    f.close()

    首先会判断这个文件是否存在,若不存在则新建,。也可以在open和close直接f.write()函数写文件。

    3、比较两个文件是否相同

    import filecmp

    filecmp.cmp(r'文件1',r'文件2')

    如果两个文件相同。会出输出true。否则输出false

    二、系统级操作

    1、获取当前运行脚本所在目录 

       import sys    

       sys.path[0]

    2、获取当前工作路径 

       import os  

       os.getcwd()

    3、 获取系统时间

        import time   
        time.strftime('%Y-%m-%d',time.localtime(time.time()))
        输出格式类似2010-07-19

    三、数据库操作

    1、连接数据库

       import MySQLdb

    conn=MySQLdb.connect(host=host1,user=user1,passwd=pass1,port=port1,db=dbname) 

       cur=conn.cursor()

        cur.close()

       conn.close()

       cursor是用来执行命令的方法,close断开连接,可在connect和close直接进行数据库的操作

    2、数据库操作

    conn.select_db('python')

    count=cur.execute('select * from test')

    result=cur.fetchone()

    results=cur.fetchmany(5)

    results=cur.fetchall()

    conn.commit()

     

    select_db()选择数据库

    execute()执行单条sql语句,返回值为受影响的行数

    fetchone() 返回一条结果行

    fetchmany(size)接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

    fetchall() 返回所有结果值

     

    3、数据库连接失败抛出异常

     try:    conn=MySQLdb.connect(host=host1,user=user1,passwd=pass1,port=port1,db=dbname) 

     

       except MySQLdb.Error,e:

            print "Mysql Error %d:%s" % (e.args[0],e.args[1])

     

    四、其他功能型操作

    1、将元组的值转化成字符串,并输出到文件,用到string下的join函数

      例:  import string

            seq=("apple","pair","orange")

            f =open("/data/cheriegong/python/test.data",'w')

            f.write(' '.join(seq))

            f.close()

    使用string.join(list) ,会报错:TypeError: sequence item 0: expected string, int found
            li = range(10)

        print ' '.join(li) 

    因为join函数处理的list,元素必须是string。它不进行任何的强制类型转换。对于其他类型需要强制转换为字符串。

    下面为正确的调用:

        li = range(10)

        print ' '.join(str(item) for item in li)

     

    2、将string转换成list

       可以用split函数,但是很麻烦。可以使用eval函数比较方便。例:eval('[1, 2, "a"]') 可以得到list [1, 2, "a"]。大部分用str()函数生成的string,都能用eval()还原成原来的对象。

     

    3、获取命令行输入的参数

        首先,必须 from optparse import OptionParser 类,创建一个 OptionParser 对象:

    parser = OptionParser() 

    然后,使用 add_option 来定义命令行参数:

    parser.add_option("-f", "--file", action="store", type="string", dest="filename")

    -f是短参数;--file是长参数,可选;type数据类型,默认为string;dest用来保存参数值得变量,如果没有指定将用参数名来对option对象的值进行存取,这里即为file。action可用值有store,store_true,stote_false等。 store_true 和 store_false,用于处理带命令行参数后面不带值的情况。

    例:-v,-q 等命令行参数:  

    parser.add_option("-v", action="store_true", dest="verbose") 

    parser.add_option("-q", action="store_false", dest="verbose") 

    这样的话,当解析到 ‘-v’,options.verbose 将被赋予 True 值,反之,解析到 ‘-q’,会被赋予 False 值。

    最后,一旦你已经定义好了所有的命令行参数,调用 parse_args() 来解析程序的命令行:  

    (options, args) = parser.parse_args()

    parse_args() 返回的两个值:options,它是一个对象(optpars.Values),保存所有命令行参数值。只要知道命令行参数名,如 file,就可以访问其对应的值:options.file 。

     例: 

    parser.add_option("-f", "--file", action="store", type="string", dest="filename") 

    args = ["-f", "foo.txt"] 

    (options, args) = parser.parse_args(args)

    print options.filename  

    最后将会打印出 “foo.txt”。

     

    4、打印0~9 十个数字

        print " ".join(str(i) for i in range(10))

        也可以用for循环实现

    for i in range(10):

        print i;

    5、import指定目录下的模块

    将文件所在路径加入sys.path,sys.path是一个list。import sys;

    sys.path.append("/home/a/")

    import b

    为了避免由于之前存在一个同名模块导致加载失败,使用以下方法:

    import sys; 

    if not "/home/a/" in sys.path:

        sys.path.append("/home/a/") 

    if not 'b' in sys.modules:

        b = __import__('b')

    else:

        eval('import b')

        b = eval('reload(b)')

    此外,在相同目录下.py文件,可以直接被import。

     

     

  • 相关阅读:
    java正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合
    ActiveMQ入门
    枚举的使用
    SSM整合
    springmvc 狂神说的详细笔记
    狂神说Java Mybatis笔记
    Spring5入门基础知识
    Ajax的使用详解
    Filter 过滤器的使用详解
    mysql备份与恢复命令
  • 原文地址:https://www.cnblogs.com/Cherie/p/3309564.html
Copyright © 2011-2022 走看看