python杂记

本文详细介绍Python中的os、sys、platform等模块的使用方法,并介绍了psutil模块如何进行系统监控及性能分析,同时还涉及了ctypes模块的应用场景。

1,这一段是抄来的:

python常见模块命令(os/sys/platform)

一、Os

Python的标准库中的os模块主要涉及普遍的操作系统功能。可以在Linux和Windows下运行,与平台无关。

  • os.sep 可以取代操作系统特定的路径分割符。 
  • os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。 
  • os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。 
  • os.getenv()和os.putenv()函数分别用来读取和设置环境变量。 
  • os.listdir()返回指定目录下的所有文件和目录名。 
  • os.remove()函数用来删除一个文件。 
  • os.system()函数用来运行shell命令。
  • os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
  • os.path.split()函数返回一个路径的目录名和文件名。
  • os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。
  • os.path.existe()函数用来检验给出的路径是否真地存在
  • os和os.path模块
  • os.listdir(dirname):列出dirname下的目录和文件
  • os.getcwd():获得当前工作目录
  • os.curdir:返回但前目录('.')
  • os.chdir(dirname):改变工作目录到dirname
  • os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
  • os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
  • os.path.exists(name):判断是否存在文件或目录name
  • os.path.getsize(name):获得文件大小,如果name是目录返回0L
  • os.path.abspath(name):获得绝对路径
  • os.path.normpath(path):规范path字符串形式
  • os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
  • os.path.splitext():分离文件名与扩展名
  • os.path.join(path,name):连接目录与文件名或目录
  • os.path.basename(path):返回文件名
  • os.path.dirname(path):返回文件路径

 

二、Sys

  • sys.argv: 实现从程序外部向程序传递参数。
  • sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
  • sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
  • sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
  • sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
  • sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
  • sys.platform: 获取当前系统平台。
  • sys.stdin,sys.stdout,sys.stderr stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

 

三、Paltform

  • platform.system() 获取操作系统类型,windows、linux等
  • platform.platform() 获取操作系统,Darwin-9.8.0-i386-32bit
  • platform.version() 获取系统版本信息 6.2.0
  • platform.mac_ver()
  • platform.win32_ver() ('post2008Server', '6.2.9200', '', u'Multiprocessor Free')
2,
psutil.virtual_memory().percent:psutil:是采集系统的基本性能信息包括CPU,内存,磁盘,网络等,可以完整的描述当前系统的
运行状况及质量,psutil封装了这些方法。
2)http://blog.youkuaiyun.com/zhouzhiwengang/article/details/44779521这里讲解了这些内容。、、

3,pyCharm中git的使用:http://www.cnblogs.com/caseast/p/6085837.html
4,traceback:获取详细的异常信息,
      try:  

    
  1.     1/0  
  2. except Exception,e:  
  3.     print e   这种情况会报异常,但是不会清楚的指出错误的地址,
  1. import traceback  
  2. try:  
  3.     1/0  
  4. except Exception,e:  
  5.     traceback.print_exc()  这种会指出出错的详细地址
5,platform模块:这个模块给我们提供很多获取操作系统的信息:
platform.platform():获取操作系统的名称和版本号
platform.version():获取操作系统的版本号
platform.architecture():获取操作系统的位数(32位,还是64位)
platform.machine():获取计算机的机型
platform.node:获取计算机的网络名称
platform.processor():计算机处理器的信息
platform.uname():包含上骂你所有信息的汇总
6,ctypes是python的一个外部库,提供和C语言兼容的数据类型,可以很方便的调用C DLL中的函数。对应的指针类型是在后面加上"_p",如int*是c_int_p等等
7,加载DLL
1)stacall调用约定:

    
  1. Objdll = ctypes.windll.LoadLibrary("dllpath")    
  2. Objdll = ctypes.WinDLL("dllpath")    
2)cdecl调用约定:

    
  1. Objdll = ctypes.cdll.LoadLibrary("dllpath")    
  2. Objdll = ctypes.CDLL("dllpath")  
其实windll和cdll分别是WinDLL类和CDll类的对象
8,相关的内容:http://blog.youkuaiyun.com/linda1000/article/details/12623527,数组,指针,结构体定义和使用

9,

from multiprocessing.context import Process

process():http://www.cnblogs.com/yanvcl/archive/2013/06/07/3123897.html

http://www.cnblogs.com/kaituorensheng/p/4445418.html

10,python中的collections模块,提供的orderedDic有序字典:字典是无序的,但是oederedDic是有序的字典结构,它记录了每个键值对的添加顺序;如果初始化的时候同时传入过个参数,他们的顺序是随机的,不会按照位置顺序存储。

d = OrderedDict(a = 1 , b = 2 , c = 3 )
OrderedDict([( 'a' , 1 ), ( 'c' , 3 ), ( 'b' , 2 )])
除了和正常的dic相同的方法之外,OrderedDict还提供了和顺序相关的操作,+popitem():返回最后一个插入的键值对,如果popitem(last = False) 将返回第一个插入的键值对
+reversed:返回一个逆序的OrderedDic

11,psutil模块的简单实用:psutil比较好的地方,一个是跨平台,另一个好处是:工具集中CPU,memory,disks,network,这些信息可以获得到。

可以用来做系统监控,性能分析,进程管理,可以支持的系统由Linux,Windows,OSX,FreeBSD,and Sun Solaris,32和64位系统都支持,同时支持python2.4到3.4https://gist.github.com/search?q=psutil

12,在使用pycharm的时候,如果没有psutil,在中端上pip install psutil就可以安装了。

13,在python中没有二进制的支持,但是,有一个struct模块,http://www.cnblogs.com/qq78292959/archive/2013/04/07/3003607.html

14,将C++传进python中的对象变换为list:在C++那里返回的是一个指针对象,在python中将这个对象转换为list,使用list(object)就可以了

15,进行python使用pdb进行调试:

1)python3 -m pdb *.py:在程序的前一行就会打上断点;一步步进行调试就可以了 ;n是单步进行;s是进入函数内部

2)在指定的位置打断点:import pdb pdb.set_trace():正常运行程序,就可以在指定的位置打印断点了。


16,python编写xml:

最简单的一种,使用字符串进行拼接:

<?xml version="1.0" encoding="windows-1252"?>
<ecg_real_list desc="lead_name,start_pos,end_pos,label">
'''


end_flag= ' </ecg_real_list> '这些是头尾的内容,在中间使用写的形式将需要的内容编写成字符串填充其中
比如:
def produce_dl_xml(lead_list_flag,out_xml_file):
    xmlhandle = open(out_xml_file, 'w')
    xmlhandle.write(title)
    segs_info =[]
    for data_node in lead_list_flag:
        seg_info = '<seg info="'+str(data_node[0])+','+str(data_node[1])+','+str(data_node[2])+','+str(data_node[3])+'"/>\r'
        segs_info.append(seg_info)
    xmlhandle.writelines(segs_info)
    xmlhandle.write(end_flag)
    xmlhandle.close()这就编写一个小型的xml;
2)进行xml的读取:http://www.cnblogs.com/fnng/p/3581433.html


17,将dict转换为json,在http中传递base64编写的二进制,要转换为json

data_dict['data']= data.decode("utf-8")
json_data = json.dumps(data_dict)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野狼位位

给点辛苦费0.1元

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值