唠里个叨
关于python的笔记,比较杂,想到啥就说啥。
文件读写
官方文档: open
这是python内建的函数,基本用法如下:
hfile = open(file_name [, access_mode][, buffering])
其中access_mode表示打开的模式,常用的如下:
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
举例如下:
hfile = open('a.data','r+')
print hfile.read()
hfile.write("hello\n")
hfile.close()
不过现在一般推荐另外一种写法:
1 | with open('a.data','r+') as hfile: |
文件对象的方法常用的有:
1 | hfile.readline() |
这里注意一下区别:readline是每次读取一行,readlines是一次性读取所有行,所以这里要注意,不要爆了内存,/滑稽脸
python json
这里说的是python内置的json,为了提高效率,当然可以使用第三方的json库,比如cjson。
函数 | 功能 |
---|---|
loads | 将已经编码好的json字符串转换为python对象 |
dumps | 与loads相反,将python对象序列化为json字符串 |
这里需要对比如下一对函数(不常用):
函数 | 功能 |
---|---|
load | 读json文件为python对象 |
dump | 与load相反,python对象写入json文件 |
写脚本的时候经常碰到的是json字符串和dict的转换。
暂时就这么多,以后想到再补充
python dict
python字典应该是比较常用的一种对象,也比较好用。
1 | d = {"name":"smaug","age":25,"sex":"male"} |
访问字典
1 | age = d['age'] |
但推荐采用下面一种,dict内置函数:
1 | age = d.get('age') |
如果age不存在,则返回None
遍历字典
常用两种方法:
1 | # method 1 |
时间、日期相关
这块平常经常用到,日期转时间戳,时间戳转日期,日期格式化等,但我每次都是记不住。
时间戳
1 | #1508103239.487282 |
返回当前时间戳,单位秒。
时间戳转日期
1 | now = time.time() |
日期转时间戳
1 | dnow = '2017-10-16 12:34:00' |
python表格
一般用于打印或者日志输出,以表格的方式展示也会很美观。
1 | from prettytable import PrettyTable |
最终结果形如:
python可变参数
形如下面的函数定义就是可变参数:
1 | def auth_requests(method, *args, **kwargs): |
*args
1 | def Func(someparam, *args): print someparam print args >>> Func(1, 2, 3, 4) 1 (2, 3, 4) |
Func 中匹配完定义好的参数,剩余的参数以元组的形式存储在 args(args 名称你可以自行定义),因此在上述程序中只要你传入不小于 1 个参数,该函数都会接受,当然你也可以直接定义只接受可变参数,你就可以自由传递你的参数。
**kwargs
与args不同,*kwargs不是以元组的方式保存,而是需要采用arg1 = value1,arg2 = value2的字典形式。
1 | >>> def func(a,*b,**c): |
还是挺简单的。
END
暂时就写到这里吧,有想到的再补充。