python2.7笔记1

本文介绍了Python编程中的实用技巧,包括动态库的导入方法、时间处理函数、跨文件函数调用、pip安装指南、格式化输出、指针操作、JSON数据处理、文件夹遍历等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.引入动态库
1)import ctypes
lib = ctypes.cdll.LoadLibrary(“动态库名字.后缀名”)
2)from ctypes import *
lib = cdll.LoadLibrary(“动态库名字.后缀名”)
dll,so的动态库都一样,在动态库成功引入后,lib.方法运行 出现“function ‘方法名’ not found ”,可以利用depends等软件查看一下是否有该接口方法。
2. 有关时间的一些方法
import datetime
time.time(), time.clock(), datetime.datetime.now()
3. A.py调用B.py文件里的函数
1)若他们在同一个目录里,直接引入

import  B #后面就可以用了

2)不在同一个目录里
2.1 引入路径

import sys
sys.path('B.py的路径目录')
import B

2.2 利用imp

import imp
B = imp.load_source('B','B.py路劲目录/B.py')
import B

4. http://python-china.org/t/704

5. linux下进行pip安装

#方案一
sudo apt-get install python-setuptools #没有setuptools的情况下
sudo apt-get install python-pip 
pip -V  #查看pip版本
#方案二
#先在https://bootstrap.pypa.io/get-pip.py下载get-pip.py到本地
sudo python get-pip.py  #以管理员的身份运行
#这个方法若没安装setuptools会自动安装
#若要更新setuptools
pip install -U setuptools

6. python下进行格式化输出

print("printf %d or other format" %(val)) #格式符可以根据变量变化

7. python中指针具体内容的attribute是 p.value
利用pointer获取一个指针
利用contents获取一个指针的值
http://python.jobbole.com/87044/
8. python定义c中的结构体(带指针,from ctypes import *)

class Point(Structure):
    _fields = [('x',c_int),('y',c_int)] #可以换位c_float

9. 近期将windows上的代码转到linux下运行,出现调用c动态库的方法,返回指针被截取的情况,指针只取了后四个字节,显示返回类型变为了int类型
原有代码:

from ctypes import *
lib = cdll.LoadLibrary('./aDll.so')
alg_res = c_char_p(lib.OSSoperation(ch,datLen)) #lib.OSSoperation(ch,datLen)这个是int类型,指针丢失掉一部分

改后:

from ctypes import *
lib.OSSoperation.restype = c_char_p #先声明返回未字符指针
result = lib.OSSoperation(loadCh,dataLen)

在查找的过程中:

c = 'ff'
cc = c_char_p(c) #这样的赋值,这样的赋值是导致地址变了,python中的字符串是没变的,应该用create_string_buffer,或者create_unicode_buffer

10. python中,将json中数据能换行加载,可以用以下的方式

data = {'name':'mimi','score':[91,87,76,66,67,78]}
jsonData = json.dumps(data,indent = 2)#indent参数设置换行的缩进值,若没有设置indent默认为1行显示
#这样jsonData中数据就可以换行显示了

参考https://www.cnblogs.com/diaosicai/p/6419833.html得到其他详细的参数,
Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是(‘,’,’:’);这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。
encoding:默认是UTF-8,设置json数据的编码方式。
sort_keys:将数据根据keys的值进行排序。
Decode过程,是把json对象转换成python对象的一个过程,常用的两个函数是loads和load函数。区别跟dump和dumps是一样的。
11. python 遍历文件夹

os.walk('F:/files/')

返回一个三元组(dirPath,dirnames,filenames),dirPath:表示遍历的路径,dirnames:标识路劲下的子目录名,filenames:表示路径下的文件名

os.listdir('F:/files/')

返回一个数组,遍历文件夹下的所有文件,不会遍历子文件夹下的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值