不要把一个py文件起名为一个库名!
独立内置函数:
open函数:调用open函数打开文件时会隐式地创建一个file对象。read,write,close等函数都在open之后进行
seek函数:移动指针位置,eg:seek(0,0) 在写操作结束后指针不会回到开头而是呆在结尾
tell函数:返回指针当前的位置
#刚打开一个文件,指针默认指在文件末尾(r+打开除外)
zip函数:把多个序列打包成元组
a=[1,2,3]
b=['a','s','d']
q=[4,5,6]
c=zip(a,zip(b,q))
print(c)
c=dict(c)
print(c)
<zip object at 0x0000019EDC526AC8>
{1: ('a', 4), 2: ('s', 5), 3: ('d', 6)}
ord函数:把单个字符转换为asc码
chr函数:把数字转换为单个字符
any函数:若传入元素中有0,或false或全空则返回false,否则为true
map函数:接受一个函数关系和一个列表(list),将列表中的每一个元素作为自变量带入函数关系中,生成的答案组成一个新的等长列表返回。
range函数:创建从0开始的一个可迭代类型,不是返回列表!因此
a=range(9)
print(a)
range(0, 9)
而
a=list(range(9))
print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
r/r+:打开本就存在的文件 覆盖写
w/w+:可新建文件打开 覆盖写
a/a+:可新建文件打开 附加写
f=open('test.txt','w+')
f.write('qwe')
position=f.seek(0,0)
str=f.read(1)
print(str)
x=f.tell()
print(x)
f.close()
f=open('test.txt','a+')
f.write('fg')
print(f.read())
f=open('test.txt','r')
print(f.read())
f=open('a.txt','a+')
random模块:
random()函数:生成0~1随机数
uniform(a,b)函数:生成,a~b或b~a随机浮点数
randint(a,b)函数:生成a~b整数
randrange(start,end,step)函数:生成递增序列中的一个任意数
choice(sequence)函数:生成该序列中的任意元素(可能是一个元组之类的)
shuffle(sequence)函数:打乱一个序列
sample(sequence,number)函数:从序列中随机获取一个长度为number的切片
sys模块:
modules模块:k-v结构,返回程序用过的全部模块及其地址
stdin模块:标准输入模块,调用其中的readline函数并去切片全部则等效于input函数
stdout模块:标准输出模块,调用其中的write函数并结尾添加换行符则等效于print函数
getdefaultencoding函数/getfilesystemencoding函数:返回当前系统/文件编码方式
platform函数:返回当前操作系统
argv函数:指示传入参数,其中0为文件地址
rename函数:文件重命名
remove函数:删除文件
rmdir函数:删除目录
mkdir函数:新建目录
chdir函数:改变打开目录
getcwd函数:返回当前目录
os.rename('test.txt','new1.txt')
os.remove('new.txt')
os.rmdir('newdir')
os.mkdir('newdir')
os.chdir('newdir')
print(os.getcwd())
argparse模块:(图片转字符串项目)
要在命令行中调用,因为需要在命令行有传入参数才有用。
import argparse
# parser = argparse.ArgumentParser()
# parser.add_argument("echo")
# args = parser.parse_args()
# print(args.echo+'asdf')
parser = argparse.ArgumentParser(description = 'this is a description')
parser.add_argument('--ver', '-v' ,action='append_const',help='aaa',default=[123],const='456')
args = parser.parse_args()
if args.ver:
print(args.ver)
else:
print(args.v)
action命令:
store:直接把输入参数赋值
store_const:有预先设定的参数值,且不接受外来参数,还要设定const
store_true/false:有预先设置的布尔参数值,且不接受外来参数,要设置default
append:接受外来参数加在默认参数之后,要设置default
append_const:不接受外来参数,把const接在默认参数后,要设置default和const
version:打印版本信息
位置参数:无-或--
可选参数:以-或--开头
在同一条add_arguement命令中出现多个可选参数则为互斥参数
列表推导式:
print(x**2 for x in [1,2,3,4])
print([x**2 for x in [1,2,3,4]])
a=[1,2,3,4]
print(a*2)
结果:
<generator object <genexpr> at 0x00000236DF14A408>
[1, 4, 9, 16]
[1, 2, 3, 4, 1, 2, 3, 4]
from collections import defaultdict
a=defaultdict(int)
#或者是
import collections
a=collections.defaultdict(int)
namedtuple函数:
>>> from collections import namedtuple
>>> Point = namedtuple('Point', ['x', 'y'])
>>> p = Point(1, 2)
>>> p.x
1
>>> p.y
2
为元组创建一个临时类,可以用类的方式调用其中的元素,方法,同时也对他赋了名字。
deque类:双侧增删的列表
>>> from collections import deque
>>> q = deque(['a', 'b', 'c'])
>>> q.append('x')
>>> q.appendleft('y')
>>> q
deque(['y', 'a', 'b', 'c', 'x'])
setdefault函数(被默认值,默认值):若字典中有该key值,则返回对应value;若无则创建key值,并以默认值为value
defaultdict函数(工厂函数):接受工厂函数 int str等或lambda函数
>>> from collections import defaultdict
>>> dd = defaultdict(lambda: 'N/A')
>>> dd['key1'] = 'abc'
>>> dd['key1'] # key1存在
'abc'
>>> dd['key2'] # key2不存在,返回默认值
'N/A'
ordereddict函数:
>>> from collections import OrderedDict
>>> d = dict([('a', 1), ('b', 2), ('c', 3)])
>>> d # dict的Key是无序的
{'a': 1, 'c': 3, 'b': 2}
>>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> od # OrderedDict的Key是有序的
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
有序字典,按照插入顺序排序。
counter函数:计数器
>>> from collections import Counter
>>> c = Counter()
>>> for ch in 'programming':
... c[ch] = c[ch] + 1
...
>>> c
Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
hasattr(对象,属性)函数:判断对象中是否包含这一属性。
setattr(对象,属性,值):给对象的属性赋值
getattr(对象,属性):返回该属性的值