is和==区别:
is不仅数据一样内存地址也一样
== 只判断数据和数据类型一样即可
读写文件:
经典面试题:现在有一个5G的文件,用python写入另一个文件里
read(): 指定读取指定大小的文件(默认一次读取所有)
readline(): 逐行读取,适合读大文件
readlines(): 一次性读取所有文件, 将文件按行读取成列表
我们使用了一个 while 循环来读取文件内容,每次最多读取 8kb 大小
这样可以避免之前需要拼接一个巨大字符串的过程,把内存占用降低非常多。
1 def read_big_file_v(fname): 2 block_size = 1024 * 8 3 with open(fname,encoding="utf8") as fp: 4 while True: 5 chunk = fp.read(block_size) 6 # 当文件没有更多内容时,read 调用将会返回空字符串 '' 7 if not chunk: 8 break 9 print(chunk) 10 path = r'C:aaalutingedc-backend ttt.py' 11 read_big_file_v(path)
re模块:
1 """在字符串中匹配字符""" 2 #导入模块re 3 import re 4 #使用模块中的match查询"abcdefg.cn"有没有"abc" 5 ret=re.match("abc","abcdefg.cn") 6 if ret: 7 print(ret.group()) 8 else: 9 print("匹配失败")
1 """.可以匹配字符串中的任意一个字符/n除外""" 2 import re 3 ret=re.match("a...c","atbtc") 4 if ret: 5 print(ret.group()) 6 else: 7 print("匹配失败") 8 """[]可以匹配列表中列举的字符""" 9 import re 10 ret=re.match("a[bcd1f]g","acg") 11 if ret: 12 print(ret.group()) 13 else: 14 print("匹配失败") 15 """d匹配数字即0--9""" 16 import re 17 ret=re.match("adb","a1b") 18 if ret: 19 print(ret.group()) 20 else: 21 print("匹配失败") 22 """D匹配非数字即不是数字即可""" 23 import re 24 ret=re.match("aDb","a@b") 25 if ret: 26 print(ret.group()) 27 else: 28 print("匹配失败") 29 """s匹配空格即空白""" 30 import re 31 ret=re.match("asb","ab") 32 if ret: 33 print(ret.group()) 34 else: 35 print("匹配失败") 36 """S匹配非空格,非空白""" 37 import re 38 ret=re.match("aSb","a1b") 39 if ret: 40 print(ret.group()) 41 else: 42 print("匹配失败") 43 """w可以匹配a--z,A--Z,0--9,_""" 44 import re 45 ret=re.match("awb","aAb") 46 if ret: 47 print(ret.group()) 48 else: 49 print("匹配失败") 50 """W可以匹配非单词字符""" 51 import re 52 ret=re.match("aWb","aAb") 53 if ret: 54 print(ret.group()) 55 else: 56 print("匹配失败") 57 """贪婪""" 58 import re 59 ret=re.match("aWb","a#b") 60 if ret: 61 print(ret.group()) 62 else: 63 print("匹配失败") 64 """*匹配前一个字符出现0次或无限次""" 65 import re 66 ret=re.match("a*cto","acto") 67 if ret: 68 print(ret.group()) 69 else: 70 print("匹配失败") 71 """+匹配前一个字符出现1次或无限次""" 72 import re 73 ret=re.match("a+bc","aaaaabc") 74 if ret: 75 print(ret.group()) 76 else: 77 print("匹配失败") 78 """非贪婪""" 79 """?匹配前一个字符出现1次或0次""" 80 import re 81 ret=re.match("a?bc","abc") 82 if ret: 83 print(ret.group()) 84 else: 85 print("匹配失败") 86 """{m}匹配前一个字符出现m次""" 87 import re 88 ret=re.match("t{2}b","ttb") 89 if ret: 90 print(ret.group()) 91 else: 92 print("匹配失败") 93 """{m,n}匹配前一个字符出现m到n次""" 94 import re 95 ret=re.match("a{2,5}t","aaaaat") 96 if ret: 97 print(ret.group()) 98 else: 99 print("匹配失败") 100 """{0,6}匹配前一个字符出现0到6次包括0""" 101 import re 102 ret=re.match("a{0,6}t","aaaaaat") 103 if ret: 104 print(ret.group()) 105 else: 106 print("匹配失败") 107 """{1,}表示至少一次""" 108 import re 109 ret=re.match("a{1,}t","aaaaaat") 110 if ret: 111 print(ret.group()) 112 else: 113 print("匹配失败")