python 中trick 总结(一)

0查看系统Python安装库的路径

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

##1查看Python中已经安装的模块

help('modules')

##2 查看Python中某个模块所有函数

dir(math)
或者import tensorflow as tf
dir(tf)

2.1 Python 中 os 与 sys的区别

os  主要是提供一些操作系统的功能。
sys 主要是提供一些python与其解释器接口的功能

##3 Python 中list与string互转

>>> str='abcde'
>>> list=list(str)
>>> list
['a', 'b', 'c', 'd', 'e']
>>> str
'abcde'
>>> "".join(list)  #join返回一个string,具体是对list中的元素之间以一个特定的字符串链接,本例中采用空串链接
'abcde'

>>> a = [1,2,3,4]
>>> print(" ".join(str(i) for i in a))

4 list string一句话转为 list int 或者list float

>>> ne=['12','13','14']
>>> ne
['12', '13', '14']
>>> ne=map(int,ne)
>>> ne
[12, 13, 14]
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
>>> ne
['12', '13', '14.9']
>>> ne=map(float,ne)
>>> ne
[12.0, 13.0, 14.9]
-----------------提升-------float list转成 string并写入文件-----
输入:ww = [12,23.4, 3,5]
     result = " ".join(map(str,map(int,ww))) + "\n"

5 读写文件

f=open("8812info.txt","r")
f2 = open('RESULT.txt','w')
for line in f:
    lines=line.strip()  #strip()用于移除字符串头尾指定字符。不写时,默认为空格
    bbox=lines.split(" ")
    bbox[1]=str(int(float(bbox[1])))
    bbox[2]=str(int(float(bbox[2])))
    bbox[3]=str(int(float(bbox[3])))
    bbox[4]=str(int(float(bbox[4])))
    f2.write(" ".join(bbox)+"\n")  #str.join("char") 用char连接bbox中的各个子元素。连接完成返回一个字符串。
f.close()
f2.close()
----------------------join----------------------------------
str = "#";
seq = ("w", "a", "n"); # 字符串序列
print str.join( seq ); # w#a#n 
-------------------一般用来将元组或者list写入文件---------------

**6 Pip安装模块在指定的目录 **

主要是针对服务器不能访问外网情况。 首先,需要 ****.whl 文件。这个就是python的源码文件。
本来可以直接 pip install - -install-option="- -prefix=your/path/" your/python/lib.whl 。

其实,一般不会成功。 报错 *** is not a supported wheel on this platform
主要原因是因为当前平台不支持你的这个轮子(***.whl 文件)。因此你得重命名

6.1 怎么重命名呢?

这里写图片描述
假设我下载的 h5py-2.7.0-cp27-cp27m-manylinux1_i686.whl 文件。可以根据第一组(‘cp27’, ‘none’, ‘linux_x86_64’)进行修改为:h5py-2.7.0-cp27-none-linux_x86_64.whl .然后就可以运行了
然后pip install - -root=/data1/user/bingolwang/software/python/ h5py-2.7.0rc2-cp27-none-linux_x86_64.whl
此时就已经安装成功了。但是你import 一般会出错

6.2 怎么加入路径呢?

安装完就可以在安装目录下出现一个lib活lib64文件夹。我们刚才安装的库就在这里ib/python2.7/site-packages/
具体为/data1/user/bingolwang/software/python/usr/lib64/python2.7/site-packages
然后加入PATHONPATH中。
这里写图片描述
下面即可导入

6.3 whl安装jedi

先下载两个文件:
parso-0.1.0-py2.py3-none-any.whl
jedi-0.11.0-py2.py3-none-any.whl

然后按照上述步骤,先安装parso-0.1.0-py2.py3-none-any.whl,在安装另外一个,即可。安装完效果
python 中trick 总结(一)_第1张图片
##Pdb调试

#打印一个调试中的对象的所有属性的值:
from pprint import pprint
pprint (vars(your_object))
#列出一个对象的所有属性与方法:
dir(your_object)
#其他调试方法与gdb类似。指令也差不多。s(step),n(next),until(跳出循环用),p(print)

##7、os.walk() 与os.listdir()

--------------------1 遍历一个文件夹(无子文件夹子)--------------
file_list = os.listdir(your_path) #返回一个list。这个list是每个文件的名字(不包含路径)的string。
for file_name in file_list :
	#processing file_name 
--------------------2 递归遍历一个文件夹(含有子文件夹)----------
for dir_path, dir_names, file_names in os.walk(your_path): #your_path 写绝对路径
	for file_name in file_names :
		print(os.path.join(dir_path,file_name))
	#这段程序可以遍历一个文件夹,递归打印所有文件的绝对路径
	
____________________ 一个应用实例:训练图像的缩放 ________________
import os
import opencv as cv2

train_folder = 'path/to/Image_folder'
 # x in os.walk(train_folder) 中的x代表一个tuple 
 # x[0] = dir_path,当前访问dir的相对路径[train_folder = ./] type:tuple
 # x[1] = dir_names , 当前路径下的所有dir        type:tuple
 # x[2] = file_names, 当前路径下所有的file_name  type:tuple
  for x in os.walk(train_folder):
	  for q in x[2]:
	  resized_q = cv2.resize(q, (32, 32))

##8、python 中的随机数

import random
#假设我想产生一些随机数,这些数字是随机的,但是保证,每次这个python程序运行的结果都是确定的。
#例如:
list = [0,1,2,3,4,5,6,7,8,9]
qq = random.Random(22).sample(list,4) #从list列表中,生成一个长度为4的随机数串

#这样qq 的数值其实是随机的,但是它的数值永远都是[9,1,0,6] 

#如果我希望每次都是不同的结果:
list = [0,1,2,3,4,5,6,7,8,9]
qq = random.sample(list,4)  #即可,等价于 qq= random.Random.sample(list,4)

你可能感兴趣的:(python)