• python语法


    1.python获取当前脚本文件的上一层目录

    获得 main,py 上上层的路径

    import os
    print os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
    解释下:

    __file__:当前文件路径
    os.path.dirname(file): 某个文件所在的目录路径
    os.path.join(a, b, c,....): 路径构造 a/b/c
    os.path.abspath(path): 将path从相对路径转成绝对路径

    os.pardir: Linux下相当于"../"

    import sys
    import os
    print "1"+os.path.dirname(os.path.abspath(__file__))
    print "2"+sys.argv[0]
    print "3"+os.path.abspath(__file__)
    print "4"+os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    print "5"+os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

    该脚本绝对路径为/Users/root/Documents/code/python/test.py
    在根目录下执行 [root@localhost /] python /Users/root/Documents/code/python/test.py 结果如下

    1/Users/root/Documents/code/python
    2/Users/root/Documents/code/python/test.py
    3/Users/root/Documents/code/python/test.py
    4/Users/root/Documents/code
    5/Users/root/Documents

     综上可以得出如下结论

    os.path.abspath(__file__)   获取当前脚本文件的绝对路径
    
    os.path.dirname(os.path.abspath(__file__))  获取当前文件所在目录的绝对路径
    
    os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  获取当前文件所在目录的绝对路径的上一层目录 
    其中os.path.dirname 可以一直累加

    2.python读取配置文件的方法

    (1)配置文件如下的ini文件

      [db]

      aa="1"

      bb="2"

      [pass]

      cc="22"

      dd="33"

    上述形式是标注的ini配置文件格式,可使用ConfigParser包来获取

    import ConfigParser
    conf = ConfigParser.ConfigParser()
    conf.read('dbconf.ini')       # 文件路径
    name = conf.get("section1", "name") # 获取指定section 的option值
    print name
    sex = conf.get("section1", "sex")  # 获取section1 的sex值
    print age
    

      参考链接:http://www.jb51.net/article/87402.htm

    如果配置文件没有中括号,也就是没有section的情况下,可以使用如下方法获取

    db.conf文件如下所示

    aa="11"

    bb="22"

    import ConfigParser
    import StringIO
    import os
    import sys 
    
    config =StringIO.StringIO()
    config.write('[defaultsection]
    ')
    config.write(open('db.conf').read())
    config.seek(0,os.SEEK_SET)
    conf = ConfigParser.ConfigParser()
    conf.readfp(config)
    aaa=conf.get('defaultsection', 'aa')
    

    2 pycharm快捷键

    http://blog.csdn.net/qq_18863573/article/details/74910975 

    3.python多线程编程的问题

       join的作用

      让主线程阻塞,等待子线程结束,才能继续执行主线程

      setDaemon(True)

      将子线程添加了属性 setDaemon(True) 后,子线程就被设置为 守护进程,,当前子线程启动后,父进程同样执行下去,

      当父进程执行完毕后,直接退出了,不会等待子进程,同时子进程也结束

    4 判断字符串中是否包含数字 英文字符,汉字等

    有两种方式,可以综合使用any和isdigit方法:
    
    >>> def hasNumbers(inputString):
    ...     return any(char.isdigit() for char in inputString)
    ... 
    >>> hasNumbers("I own 1 dog")
    True
    >>> hasNumbers("I own no dog")
    False
    
    或者,可以使用正则表达式:
    
    >>> import re
    >>> def hasNumbers(inputString):
    ...     return bool(re.search(r'd', inputString))
    ... 
    >>> hasNumbers("I own 1 dog")
    True
    >>> hasNumbers("I own no dog")
    False
    去掉数字可以使用 re.sub函数(替换函数)
    >>>import re
    >>>a = "test123"
    >>print re.sub(r'd+','',a)
    test
    这样就可以把字符串中的数字去掉
    举一反三 去掉字符串中的英文字母可以这样做;
    >>>import re
    >>>a = "test123"
    >>print re.sub(r'[a-zA-Z]','',a)
    123
    这样就可以把字母替换为空,相当于删除

     5.string转json

    json.loads()

  • 相关阅读:
    mode
    Jmeter获取不到cookie(备注:前面和后面的几个步骤都可以获取到cookie)
    [BAT]批处理脚本双击可运行,但在定时计划任务中无法执行(当前工作路径不对导致的)
    匹配数字、字母和?%&=-_这几个符号的正则表达式
    在jmeter的beanshell中用java获取系统当前时间
    Jmeter中正则表达式不区分大小写进行匹配
    通过BeanShell获取UUID并将参数传递给Jmeter
    JAVA Get UUID
    Jmeter报文体包含过大附件导致请求报文发送失败的解决办法
    [BAT]操作系统定时任务调用批处理忽略error继续运行的方法
  • 原文地址:https://www.cnblogs.com/Kevin-1967/p/7365794.html
Copyright © 2020-2023  润新知