python 中trick 总结(一)

来源:互联网 发布:机器视觉主流算法 编辑:程序博客网 时间:2024/05/30 05:15

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

help('modules')

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

dir(math)或者import tensorflow as tfdir(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'

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中。
这里写图片描述
下面即可导入

Pdb调试

#打印一个调试中的对象的所有属性的值:from pprint import pprintpprint (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 osimport opencv as cv2train_folder = 'path/to/Image_folder' # x in os.walk(train_folder) 中的x代表一个tuple <dir_path, dir_names, file_names> # 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)
原创粉丝点击