fp = open() #文件句柄,文件句柄里存的内容: 文件信息、在磁盘上的开始位置、内存等 fp.tell() 查看当前位置 fp.seek(30) 跳到30 for line in fp: print(line) ###可以直接这样。。
for i in range(50): sys.stdout.write("#") sys.stdout.flush() time.sleep(0.1)
for line in fp: if "helooxxx" in line: line = line.replace() fp2.write(line)
#-*-encoding:utf8 -*- s= "你好" s.decode("utf-8"):Utf8转到unicode s.encode("gbk") unicode 转到 gbk
ef f(x, *args): #tuple print args f(1,2,3,"h","a") f([1,2,3]) f(*[8,3,"b"]) def f4(**kwargs): #Dictionary: 把N个关键字转换为字典方式 print(kwargs) f4(name="Alex", age=8, sex="N")
list_1 = [1,6,5,4] list_1 = set(list_1) list_2 = set([8,9,5,10,1]) print (list_1, list_2) print(list_1.intersection(list_2)) #交集 print(list_1.union(list_2)) #并集 #in list_1 but not in list_2 print(list_1.difference(list_2)) #差集, list_1里有但2里没有 list_3 = set([1,6]) print(list_1.issubset(list_3)) #子集 print(list_1.issuperset(list_3)) #父集 ##对称差集,去掉交集后 print(list_1.symmetric_difference(list_2)) print("-----") list_4 = set([90]) print(list_1.isdisjoint(list_4)) #是否没有交集 ####集合运算2#: print(list_1,list_2) print(list_1 | list_2) #并集 print(list_1 & list_2) #交集 print(list_1 - list_2) #差集 print(list_1 ^ list_2) #对称差集 list_1.add('x') list_1.update(["a","b","c","x"]) print(list_1) print ("a" in list_1)
def foo(): print('in the foo') def bar(): print('in the bar') 高阶函数 + 嵌套函数 ---> 装饰器 @auth #index = auth(index) def index() 生成器: #列表生成式 b=[i*2 for i in range(1000000)] ##会生成列表,速度慢 b=(i*2 for i in range(10000000)) ##瞬间完成,并不会真的生成列表,在取值的时候才会生成 生成器:只有在调用时才会生成相应的数据。只记住当前位置。只有一个__next__(),python2.7:next() b.__next__() next(b) def fib(max): n, a, b = 0, 0 ,1 while n < max: #print(b)# yield b ###生成器 a, b = b, a+b n +=1 return "--------------------done"
re.sub() 替换
re.match()
re.find() final
re.search()
'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE) '$' 匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以 '*' 匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac") 结果为['abb', 'ab', 'a'] '+' 匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb'] '?' 匹配前一个字符1次或0次 '{m}' 匹配前一个字符m次 '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb'] '|' 匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC' '(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
'\A' 只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的 '\Z' 匹配字符结尾,同$ '\d' 匹配数字0-9 '\D' 匹配非数字 '\w' 匹配[A-Za-z0-9] '\W' 匹配非[A-Za-z0-9] 's' 匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
'(?P<name>...)' 分组匹配 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})","371481199306143242").groupdict("city") 结果{'province': '3714', 'city': '81', 'birthday': '1993'} |
re.split(r’\\’, r’a\b\c’)
或者:
re.split(‘\\\\’, r’a\b\c’)
re.search(‘a’, r’a\A\abc’, flags=re.I). 忽略大小写
多行:
re.search(‘2’, ‘abc\n1234’, flags=re.M)
re.search(‘2’, ‘abc\n1234’, flags=re.S)
^ 以开头、 不包含