读写文件&is和==区别&re模块

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:\aaa\luting\edc-backend\tttt.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("a\db","a1b")
 18 if ret:
 19     print(ret.group())
 20 else:
 21     print("匹配失败")
 22 """\D匹配非数字即不是数字即可"""
 23 import re
 24 ret=re.match("a\Db","a@b")
 25 if ret:
 26     print(ret.group())
 27 else:
 28     print("匹配失败")
 29 """\s匹配空格即空白"""
 30 import re
 31 ret=re.match("a\sb","ab")
 32 if ret:
 33     print(ret.group())
 34 else:
 35     print("匹配失败")
 36 """\S匹配非空格,非空白"""
 37 import re
 38 ret=re.match("a\Sb","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("a\wb","aAb")
 46 if ret:
 47     print(ret.group())
 48 else:
 49     print("匹配失败")
 50 """\W可以匹配非单词字符"""
 51 import re
 52 ret=re.match("a\Wb","aAb")
 53 if ret:
 54     print(ret.group())
 55 else:
 56     print("匹配失败")
 57 """贪婪"""
 58 import re
 59 ret=re.match("a\Wb","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("匹配失败")

 

posted @ 2020-03-12 14:07  青年才俊001  阅读(166)  评论(0)    收藏  举报