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()