zoukankan      html  css  js  c++  java
  • 读写文件&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: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("匹配失败")
  • 相关阅读:
    种类并查集
    51nod 1241 特殊的排序(动态规划)
    NKU 专题一 题解
    51nod 1040 最大公约数之和
    cf #419(div2) C.Karen and Game(贪心)
    BZOJ 2648 SJY摆棋子(KD-Tree)
    BZOJ 4154 [Ipsc2015]Generating Synergy(KD-Tree)
    hdu 2966 In case of failure(KD-tree)
    hdu 6071 Lazy Running(同余最短路)
    hdu 6070 Dirt Ratio(分数规划)
  • 原文地址:https://www.cnblogs.com/errenjune/p/12482716.html
Copyright © 2011-2022 走看看