一图看懂 linecache 模块:随机读写文本行, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

一图看懂 linecache 模块:随机读写文本行, 资料整理+笔记(大全)

  • 摘要
  • 模块图
  • 类关系图
  • 模块全展开
    • 【linecache】
    • 统计
    • 常量
      • dict
    • 模块
      • 2 functools
      • 3 sys
      • 4 os
      • 5 tokenize
    • 函数
      • 6 getline(filename, lineno, module_globals=None)
      • 7 clearcache()
      • 8 getlines(filename, module_globals=None)
      • 9 checkcache(filename=None)
      • 10 updatecache(filename, module_globals=None)
      • 11 lazycache(filename, module_globals)
    • 【functools】
    • 【sys】
    • 【os】
    • 【tokenize】
    • 统计
    • 常量
      • int
      • str
      • set
      • dict
    • 模块
      • 101 collections
      • 102 itertools
      • 103 re
      • 104 sys
    • 函数
      • 105 ISTERMINAL(x)
      • 106 ISNONTERMINAL(x)
      • 107 ISEOF(x)
      • 108 group(*choices)
      • 109 any(*choices)
      • 110 maybe(*choices)
      • 111 _all_string_prefixes()
      • 112 _compile(expr)
      • 113 untokenize(iterable)
      • 114 _get_normal_name(orig_enc)
      • 115 detect_encoding(readline)
      • 116 open(filename)
      • 117 tokenize(readline)
      • 118 _tokenize(readline, encoding)
      • 119 generate_tokens(readline)
      • 120 main()
      • 121 _io.TextIOWrapper
      • 122 itertools.chain
      • 123 tokenize.TokenInfo
        • property
      • 124 tokenize.TokenError
      • 125 tokenize.StopTokenizing
      • 126 tokenize.Untokenizer
        • method
        • 1 add_whitespace(self, start)
        • 2 compat(self, token, iterable)
        • 3 untokenize(self, iterable)
    • 内嵌函数或方法
    • 私有或局部
    • 剩余

摘要

全文介绍系统内置 os 模块、函数、类及类的方法和属性。
它通过代码抓取并经AI智能翻译和人工校对。
是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】

模块图

一图看懂 linecache 模块:随机读写文本行, 资料整理+笔记(大全)_第1张图片

linecache
	◆functools
	◆sys
	◆os
	◆tokenize

类关系图

一图看懂 linecache 模块:随机读写文本行, 资料整理+笔记(大全)_第2张图片

◆object
	◆BaseException
		◆Exception
			◆OSError
			◆tokenize.StopTokenizing
			◆tokenize.TokenError
	◆_frozen_importlib.BuiltinImporter
	◆_io._IOBase
		◆_io._TextIOBase
			◆_io.TextIOWrapper
	◆_thread.RLock
	◆abc.ABC
		◆os.PathLike
	◆collections.abc.Container
		◆collections.abc.Iterable
			◆collections.abc.Sized
				◆collections.abc.Collection
					◆collections.abc.Mapping
						◆collections.abc.MutableMapping
							◆os._Environ
	◆functools._lru_cache_wrapper
	◆functools.partial
	◆functools.partialmethod
	◆itertools.chain
	◆list
		◆functools._HashedSeq
	◆nt.DirEntry
	◆os._wrap_close
	◆tokenize.Untokenizer
	◆tuple
		◆functools.CacheInfo
		◆nt.times_result
		◆nt.uname_result
		◆os.stat_result
		◆os.statvfs_result
		◆os.terminal_size
		◆tokenize.TokenInfo
			◆tokenize.TokenInfo

模块全展开

【linecache】

linecache, fullname=linecache, file=linecache.py

来自Python源文件的缓存行。
这是为了从导入的模块中读取行——因此,如果没有找到文件名,它将沿着模块搜索路径查找该文件名的文件。

统计

序号 类别 数量
4 str 5
6 list 1
8 dict 2
9 module 4
11 function 6
13 residual 2
14 system 9
16 all 20

常量

dict

1 cache {}

模块

2 functools

functools, fullname=functools, file=functools.py

3 sys

sys, fullname=sys, file=

4 os

os, fullname=os, file=os.py

5 tokenize

tokenize, fullname=tokenize, file=tokenize.py

Python程序的标记化帮助。
tokenize(readline)是一个生成器,它将字节流分解为Python令牌。
它根据PEP-0263对字节进行解码,以确定源文件编码。
它接受一个类似readline的方法,该方法被反复调用以获得下一行输入(或 b"" 表示EOF)。
它生成具有以下成员的5元组:
    令牌类型(参见token.py)
    令牌(字符串)
    令牌的开始(行,列)索引(二元整型组)
    令牌的结束(行,列)索引(二元整型组)
    原始行(字符串)
它被设计成与Python标记器的工作完全匹配,除了它为注释生成 COMMENT 令牌并为所有操作符提供OP类型。
此外,所有令牌列表都以ENCODING令牌开始,它告诉您使用哪种编码来解码字节流。

函数

6 getline(filename, lineno, module_globals=None)

getline(filename, lineno, module_globals=None), module=linecache, line:15 at linecache.py

7 clearcache()

clearcache(), module=linecache, line:30 at linecache.py

完全清除缓存。

8 getlines(filename, module_globals=None)

getlines(filename, module_globals=None), module=linecache, line:37 at linecache.py

从缓存中获取Python源文件的行。
如果缓存尚未包含此文件的条目,则更新缓存。

9 checkcache(filename=None)

checkcache(filename=None), module=linecache, line:53 at linecache.py

丢弃过期的缓存项。(这不是在每次调用时检查!)

10 updatecache(filename, module_globals=None)

updatecache(filename, module_globals=None), module=linecache, line:82 at linecache.py

更新缓存条目并返回其行列表。
如果出现错误,则打印一条消息,丢弃缓存条目,并返回一个空列表。

11 lazycache(filename, module_globals)

lazycache(filename, module_globals), module=linecache, line:147 at linecache.py

用模块全局变量为文件名种子缓存。
只有在调用getlines时才会向模块加载器请求源,而不是立即调用。
如果缓存中已经有条目,则不会更改它。
    :return:如果在缓存中注册了惰性加载,则为True,否则为False。
    要注册这样的加载,必须找到一个使用get_source方法的模块加载器,文件名必须是可缓存的文件名,并且文件名必须不是已经缓存的。

【functools】

functools, fullname=functools, file=functools.py

【sys】

sys, fullname=sys, file=

【os】

os, fullname=os, file=os.py

【tokenize】

tokenize, fullname=tokenize, file=tokenize.py

统计

序号 类别 数量
1 int 61
4 str 41
6 list 1
7 set 2
8 dict 4
9 module 4
10 class 6
11 function 16
12 builtin_function_or_method 2
13 residual 5
14 system 11
15 private 7
16 all 142

常量

int

1 ENDMARKER 0
2 NAME 1
3 NUMBER 2
4 STRING 3
5 NEWLINE 4
6 INDENT 5
7 DEDENT 6
8 LPAR 7
9 RPAR 8
10 LSQB 9
11 RSQB 10
12 COLON 11
13 COMMA 12
14 SEMI 13
15 PLUS 14
16 MINUS 15
17 STAR 16
18 SLASH 17
19 VBAR 18
20 AMPER 19
21 LESS 20
22 GREATER 21
23 EQUAL 22
24 DOT 23
25 PERCENT 24
26 LBRACE 25
27 RBRACE 26
28 EQEQUAL 27
29 NOTEQUAL 28
30 LESSEQUAL 29
31 GREATEREQUAL 30
32 TILDE 31
33 CIRCUMFLEX 32
34 LEFTSHIFT 33
35 RIGHTSHIFT 34
36 DOUBLESTAR 35
37 PLUSEQUAL 36
38 MINEQUAL 37
39 STAREQUAL 38
40 SLASHEQUAL 39
41 PERCENTEQUAL 40
42 AMPEREQUAL 41
43 VBAREQUAL 42
44 CIRCUMFLEXEQUAL 43
45 LEFTSHIFTEQUAL 44
46 RIGHTSHIFTEQUAL 45
47 DOUBLESTAREQUAL 46
48 DOUBLESLASH 47
49 DOUBLESLASHEQUAL 48
50 AT 49
51 ATEQUAL 50
52 RARROW 51
53 ELLIPSIS 52
54 OP 53
55 ERRORTOKEN 54
56 COMMENT 55
57 NL 56
58 ENCODING 57
59 N_TOKENS 58
60 NT_OFFSET 256
61 tabsize 8

str

62 Whitespace [ \f\t]*
63 Comment #[^\r\n]*
64 Ignore [ \f\t](\\r?\n[ \f\t])(#[^\r\n])?
65 Name \w+
66 Hexnumber 0xX+
67 Binnumber 0bB+
68 Octnumber 0oO+
69 Decnumber (?:0(?:?0)|1-9)
70 Intnumber (0xX+|0bB+|0oO+|(?:0(?:
?0)|1-9))
71 Exponent [eE][-+]?0-9*
72 Pointfloat (0-9.(?:0-9)?|.0-9)([eE][-+]?0-9)?
73 Expfloat 0-9[eE][-+]?0-9
74 Floatnumber ((0-9.(?:0-9)?|.0-9)([eE][-+]?0-9)?|0-9[eE][-+]?..
75 Imagnumber (0-9
[jJ]|((0-9.(?:0-9)?|.0-9)([eE][-+]?0-9)?|[0-…
76 Number ((0-9[jJ]|((0-9.(?:0-9)?|.0-9)([eE][-+]?0-9)?|[0…
77 StringPrefix (|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U|Br|Rf|rb|u|RF|B)
78 Single ['\]*(?:\.['\]
)
79 Double ["\]*(?:\.["\]
)"
80 Single3 [‘\]*(??:\.|’(?!‘’))['\]
)‘’’
81 Double3 [“\]*(??:\.|”(?!“”))["\]
)“”"
82 Triple ((|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U|Br|Rf|rb|u|RF|B)‘’‘|(|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U…
83 String ((|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U|Br|Rf|rb|u|RF|B)’[\n’\]*(?:\.[\n’\]
)'|(|rf|BR|b|br|Rb|FR|Fr|f|…
84 Operator (**=?|>>=?|<<=?|!=|//=?|->|[±
/%&@|^=<>]=?|~)
85 Bracket [][(){}]
86 Special (\r?\n|…|[:;.,@])
87 Funny ((**=?|>>=?|<<=?|!=|//=?|->|[±/%&@|^=<>]=?|~)|[][(){}]|(\r?\n|…|[:;.,@]))
88 PlainToken (((0-9
[jJ]|((0-9.(?:0-9)?|.0-9)([eE][-+]?0-9)?|[…
89 Token [ \f\t](\\r?\n[ \f\t])(#[^\r\n])?(((0-9[jJ]|((0-9.(?:0-9)?|.[0-9](?:_?[…
90 ContStr ((|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U|Br|Rf|rb|u|RF|B)‘[\n’\]*(?:\.[\n’\]
)('|\\r?\n)|(|rf|BR|b|br|R…
91 PseudoExtras (\\r?\n|\Z|#[^\r\n]
|((|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U|Br|Rf|rb|u|RF|B)‘’‘|(|rf|BR|b|br|Rb|FR|Fr|f|rF|…
92 PseudoToken [ \f\t]((\\r?\n|\Z|#[^\r\n]|((|rf|BR|b|br|Rb|FR|Fr|f|rF|rB|RB|F|fR|bR|R|fr|r|U|Br|Rf|rb|u|RF|B)’‘’|(|rf|BR|b|br|Rb|FR…
93 _prefix B
94 t B
95 u B’‘’

set

96 single_quoted {“BR’”, ‘rF"’, “rb’”, “'”, ‘u"’, “R’”, “r’”, “Fr’”, ‘R"’, ‘f"’, ‘bR"’, “fr’”, ‘BR"’, ‘br"’, ‘rf"’, ‘fR"’, “RB’”, ‘FR"’, …
97 triple_quoted {“r’‘’”, ‘r"“”’, “rf’‘’”, “Br’‘’”, “u’‘’”, ‘FR"“”’, ‘br"“”’, “Rf’‘’”, ‘bR"“”’, ‘U"“”’, ‘fR"“”’, ‘u"“”’, “fR’‘’”, ‘Fr"“”’…

dict

98 tok_name {0: ‘ENDMARKER’, 1: ‘NAME’, 2: ‘NUMBER’, 3: ‘STRING’, 4: ‘NEWLINE’, 5: ‘INDENT’, 6: ‘DEDENT’, 7: ‘LPAR’, 8: ‘RPAR’, 9: ‘…
99 EXACT_TOKEN_TYPES {’(‘: 7, ‘)’: 8, ‘[’: 9, ‘]’: 10, ‘:’: 11, ‘,’: 12, ‘;’: 13, ‘+’: 14, ‘-’: 15, ‘‘: 16, ‘/’: 17, ‘|’: 18, ‘&’: 19, ‘<’: …
100 endpats {"’": "['\\]*(?:\\.['\\]
)‘“, '”’: '["\\]*(?:\\.["\\])*"’, "’‘’": "[‘\\]*(??:\\.|’(?!‘’))['\…

模块

101 collections

collections, fullname=collections, file=collections_init_.py

这个模块实现了专门的容器数据类型,提供了Python通用内置容器dict、list、set和tuple的替代方案。

102 itertools

itertools, fullname=itertools, file=

用于创建和使用迭代器的功能工具。

103 re

re, fullname=re, file=re.py

104 sys

sys, fullname=sys, file=

函数

105 ISTERMINAL(x)

ISTERMINAL(x), module=token, line:83 at token.py

106 ISNONTERMINAL(x)

ISNONTERMINAL(x), module=token, line:86 at token.py

107 ISEOF(x)

ISEOF(x), module=token, line:89 at token.py

108 group(*choices)

group(*choices), module=tokenize, line:107 at tokenize.py

109 any(*choices)

any(*choices), module=tokenize, line:108 at tokenize.py

110 maybe(*choices)

maybe(*choices), module=tokenize, line:109 at tokenize.py

111 _all_string_prefixes()

_all_string_prefixes(), module=tokenize, line:132 at tokenize.py

112 _compile(expr)

_compile(expr), module=tokenize, line:147 at tokenize.py

113 untokenize(iterable)

untokenize(iterable), module=tokenize, line:312 at tokenize.py

将令牌转换回Python源代码。
它返回一个bytes对象,使用ENCODING令牌进行编码,这是通过tokenize输出的第一个令牌序列。
iterable返回的每个元素必须是一个至少包含两个元素的令牌序列,一个令牌号和一个令牌值。
如果只传递两个令牌,则结果输出很差。
    完整输入的往返不变量:
        未标记化的源将与输入源完全匹配
    有限输入的往返不变量:
        # 输出字节将标记化回输入
        # Output bytes will tokenize back to the input
        t1 = [tok[:2] for tok in tokenize(f.readline)]
        newcode = untokenize(t1)
        readline = BytesIO(newcode).readline
        t2 = [tok[:2] for tok in tokenize(readline)]
        assert t1 == t2

114 _get_normal_name(orig_enc)

_get_normal_name(orig_enc), module=tokenize, line:339 at tokenize.py

在tokenizer.c中模拟得到正常名称。

115 detect_encoding(readline)

detect_encoding(readline), module=tokenize, line:350 at tokenize.py

detect_encoding()函数用于检测应该用于解码Python源文件的编码。
它需要一个参数readline,方法与tokenize()生成器相同。
它将最多调用readline两次,并返回所使用的编码(作为字符串)和它所读入的任何行(以字节形式保留)的列表。
它根据存在utf-8 bom 或 pep-0263 中指定的编码 cookie来检测编码。
如果bom和cookie都存在,但不一致,将引发SyntaxError。
如果编码cookie是一个无效的字符集,则引发SyntaxError。
注意,如果找到utf-8 bom,则返回'utf-8-sig'。如果没有指定编码,则将返回默认的'utf-8'。

116 open(filename)

open(filename), module=tokenize, line:443 at tokenize.py

使用detect_encoding()检测到的编码以只读模式打开文件。

117 tokenize(readline)

tokenize(readline), module=tokenize, line:459 at tokenize.py

tokenize()生成器需要一个参数readline,它必须是一个可调用对象,提供与内置文件对象的readline()方法相同的接口。
对函数的每次调用都应返回一行以字节表示的输入。
或者,readline可以是一个以StopIteration结束的可调用函数:
readline = open(myfile, 'rb').__next__  # 备用读行示例
生成器生成具有以下成员的5元组:
    token类型;
    令牌字符串;
    整数组成的二元组(srow, scol),指定源文件中令牌开始的行和列;
    整数组成的二元组(erow, ecol),指定令牌在源文件中结束的行和列;
    以及找到标记的行。
传递的线是逻辑线;继续行也包括在内。
第一个令牌序列将始终是一个ENCODING令牌,它告诉您使用哪种编码来解码字节流。

118 _tokenize(readline, encoding)

_tokenize(readline, encoding), module=tokenize, line:487 at tokenize.py

119 generate_tokens(readline)

generate_tokens(readline), module=tokenize, line:672 at tokenize.py

120 main()

main(), module=tokenize, line:675 at tokenize.py

121 _io.TextIOWrapper

TextIOWrapper, _io.TextIOWrapper, module=_io, line:0 at

字符和行基于层在BufferedIOBase对象,缓冲区。

122 itertools.chain

chain, itertools.chain, module=itertools, line:0 at

chain(*iterables) --> chain object
返回一个链对象.__next__()方法返回第一个可迭代对象中的元素,直到该可迭代对象耗尽,
然后返回下一个可迭代对象中的元素,直到所有可迭代对象耗尽。

123 tokenize.TokenInfo

TokenInfo, tokenize.TokenInfo, module=tokenize, line:94 at tokenize.py

property

1 exact_type= kind:property type:property class:

124 tokenize.TokenError

TokenError, tokenize.TokenError, module=tokenize, line:212 at tokenize.py

125 tokenize.StopTokenizing

StopTokenizing, tokenize.StopTokenizing, module=tokenize, line:214 at tokenize.py

126 tokenize.Untokenizer

Untokenizer, tokenize.Untokenizer, module=tokenize, line:217 at tokenize.py

method

1 add_whitespace(self, start)

kind=method class=Untokenizer objtype=function line:225 at …\lib\tokenize.py

2 compat(self, token, iterable)

kind=method class=Untokenizer objtype=function line:275 at …\lib\tokenize.py

3 untokenize(self, iterable)

kind=method class=Untokenizer objtype=function line:238 at …\lib\tokenize.py

内嵌函数或方法

127 _builtin_open
128 lookup

私有或局部

129 _builtin_open
130 _itertools
131 _all_string_prefixes
132 _compile
133 _prefix B
134 _get_normal_name
135 _tokenize

剩余

136 loader <_frozen_importlib_external.SourceFileLoader object at 0x00000000024998C8>
137 spec ModuleSpec(name=‘tokenize’, loader=<_frozen_importlib_external.SourceFileLoader object at 0x00000000024998C8>, origin=‘…\lib\tokenize.py’)
138 BOM_UTF8 b’\xef\xbb\xbf’
139 cookie_re re.compile(’ ^ [ \t\f]#.?coding[:=][ \t]([-\w.]+)‘, re.ASCII)
140 blank_re re.compile(b’^ [ \t\f]
(?:[#\r\n]|$)', re.ASCII)

你可能感兴趣的:(菜鸟学python,python,开发语言,信息可视化)