一图看懂 fileinput 模块:多个输入文件处理, 资料整理+笔记(大全)

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

Alt

一图看懂 fileinput 模块:多个输入文件处理, 资料整理+笔记(大全)

  • 摘要
  • 模块图
  • 类的关系
  • 模块全展开
    • 【fileinput】
    • 统计
    • 模块
      • 1 sys
      • 2 os
    • 函数
      • 3 input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
      • 4 close()
      • 5 nextfile()
      • 6 filename()
      • 7 lineno()
      • 8 filelineno()
      • 9 fileno()
      • 10 isfirstline()
      • 11 isstdin()
      • 12 hook_compressed(filename, mode)
      • 13 hook_encoded(encoding, errors=None)
      • 14 _test()
      • 15 fileinput.FileInput
        • method
        • 1 close(self)
        • 2 filelineno(self)
        • 3 filename(self)
        • 4 fileno(self)
        • 5 isfirstline(self)
        • 6 isstdin(self)
        • 7 lineno(self)
        • 8 nextfile(self)
        • 9 readline(self)
  • 私有或局部
  • 剩余
  • 内嵌函数或方法
  • 私有或局部
  • 剩余
  • 内嵌函数或方法
  • 私有或局部
  • 剩余
  • 附录

摘要

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

模块图

无。(单一模块,过于简单。)

类的关系

也很简单。不过,保持一惯性,还是贴图吧。
一图看懂 fileinput 模块:多个输入文件处理, 资料整理+笔记(大全)_第1张图片

◆object
	fileinput.FileInput

模块全展开

【fileinput】

fileinput, fullname=fileinput, file=fileinput.py

Helper类快速编写遍历所有标准输入文件的循环。
典型的用法是:
    import fileinput
    for line in fileinput.input():
        process(line)
这将遍历 sys.argv[1:] 中列出的所有文件的行,如果列表为空,则默认为sys.stdin。
如果一个文件名是'-',它也会被sys.stdin代替,可选参数mode和openhook将被忽略。
要指定一个可供选择的文件名列表,将其作为参数传递给input()。
也允许使用单个文件名。
函数filename(), lineno()返回刚刚读取的行的文件名和累计行号;
filelineno()返回当前文件中的行号;
isfirstline()如果刚刚读取的行是其文件的第一行,则返回true;
isstdin() 如果是从sys.stdin读取的,则返回true。
函数nextfile()关闭当前文件,以便下一次迭代从下一个文件(如果有)中读取第一行;
未从文件中读取的行将不计入累积行数;直到读取下一个文件的第一行之后才更改文件名。
函数close()关闭序列。
在读取任何行之前,filename()返回None,并且两个行号都为零; nextfile()没有效果。
读取所有行后,filename()和行号函数返回与最后读取的行相关的值;nextfile()没有效果。

默认情况下,所有文件都以文本模式打开,您可以通过将模式参数设置为 input() 或 FileInput.__init__() 来覆盖这一点。
如果在打开或读取文件时发生I/O错误,将引发OSError异常。
如果 sys.stdin 被使用多次,第二次和进一步的使用将不会返回任何行,除非可能是交互使用,或者如果它已经显式重置(例如使用sys.stdin.seek(0))。

打开并立即关闭空文件;只有当最后打开的文件为空时,才会注意到它们在文件名列表中的存在。
文件的最后一行可能不是换行符;否则返回包括末尾换行符在内的行。

类FileInput是实现;它的方法filename(), lineno(), fileline(), isfirstline(), isstdin(), nextfile()和close()对应于模块中的函数。
此外,它还有一个readline()方法,用于返回下一个输入行,还有一个 __getitem__() 方法,用于实现序列行为。
序列必须严格按顺序访问;序列访问和readline()不能混合使用。

可选就地过滤:如果关键字参数inplace=1被传递给input()或FileInput构造函数,则文件被移动到备份文件,标准输出被定向到输入文件。
这样就可以编写一个过滤器,在适当的位置重写其输入文件。如果关键字参数 backup="." 也被给出,
它指定了备份文件的扩展名,并且备份文件保持不变;默认情况下,扩展名为“.bak”,当输出文件关闭时,它将被删除。在读取标准输入时禁用就地过滤。
(注:XXX 不适用于MS-DOS 8+3文件系统。)
XXX 可能的补充:
- 可选的 getopt 参数处理
- isatty()
- read(), read(size), 甚至 readlines()

统计

序号 类别 数量
4 str 5
6 list 1
8 dict 1
9 module 2
10 class 1
11 function 12
13 residual 3
14 system 9
15 private 2
16 all 25

模块

1 sys

sys, fullname=sys, file=

2 os

os, fullname=os, file=os.py

函数

3 input(files=None, inplace=False, backup=‘’, bufsize=0, mode=‘r’, openhook=None)

input(files=None, inplace=False, backup=‘’, bufsize=0, mode=‘r’, openhook=None)
module=fileinput, line:83 at fileinput.py

返回 FileInput 类的一个实例,该实例可以迭代。
参数被传递给FileInput类的构造函数。
返回的实例除了作为迭代器外,还为该模块的函数保留全局状态。

4 close()

close(), module=fileinput, line:97 at fileinput.py

关闭序列。

5 nextfile()

nextfile(), module=fileinput, line:105 at fileinput.py

关闭当前文件,以便下一次迭代将从下一个文件(如果有的话)读取第一行;未从文件中读取的行将不计入累积行数。
直到读取下一个文件的第一行之后才更改文件名。
在读取第一行之前,该函数没有作用;它不能用于跳过第一个文件。
在最后一个文件的最后一行被读取之后,这个函数就不起作用了。

6 filename()

filename(), module=fileinput, line:119 at fileinput.py

返回当前正在读取的文件的名称。在第一行被读取之前,返回None。

7 lineno()

lineno(), module=fileinput, line:128 at fileinput.py

返回刚刚读取的行的累积行号。在读取第一行之前,返回0。读取最后一个文件的最后一行后,返回该行的行号。

8 filelineno()

filelineno(), module=fileinput, line:138 at fileinput.py

返回当前文件中的行号。在读取第一行之前,返回0。读取最后一个文件的最后一行后,返回文件中该行的行号。

9 fileno()

fileno(), module=fileinput, line:148 at fileinput.py

返回当前文件的文件号。当当前没有文件打开时,返回-1。

10 isfirstline()

isfirstline(), module=fileinput, line:157 at fileinput.py

如果刚刚读取的行是文件的第一行,则返回true,否则返回false。

11 isstdin()

isstdin(), module=fileinput, line:166 at fileinput.py

如果最后一行是从sys.stdin,否则返回false。

12 hook_compressed(filename, mode)

hook_compressed(filename, mode), module=fileinput, line:393 at fileinput.py

13 hook_encoded(encoding, errors=None)

hook_encoded(encoding, errors=None), module=fileinput, line:405 at fileinput.py

14 _test()

_test(), module=fileinput, line:411 at fileinput.py

15 fileinput.FileInput

FileInput, fileinput.FileInput, module=fileinput

FileInput([files[, inplace[, backup[, bufsize, [, mode[, openhook]]]]]])
类FileInput是模块的实现;
它的方法filename(), lineno(), fileline(), isfirstline(), isstdin(), fileno(), nextfile()和close()对应于模块中同名的函数。
此外,它还有一个readline()方法,用于返回下一个输入行,还有一个 __getitem__() 方法,用于实现序列行为。
序列必须严格按顺序访问; 随机访问和readline()不能混合使用。

method

1 close(self)

kind=method class=FileInput objtype=function line:235 at …\fileinput.py

2 filelineno(self)

kind=method class=FileInput objtype=function line:374 at …\fileinput.py

3 filename(self)

kind=method class=FileInput objtype=function line:368 at …\fileinput.py

4 fileno(self)

kind=method class=FileInput objtype=function line:377 at …\fileinput.py

5 isfirstline(self)

kind=method class=FileInput objtype=function line:386 at …\fileinput.py

6 isstdin(self)

kind=method class=FileInput objtype=function line:389 at …\fileinput.py

7 lineno(self)

kind=method class=FileInput objtype=function line:371 at …\fileinput.py

8 nextfile(self)

kind=method class=FileInput objtype=function line:269 at …\fileinput.py

9 readline(self)

kind=method class=FileInput objtype=function line:299 at …\fileinput.py

私有或局部

16 _state None
17 _test

剩余

18 loader <_frozen_importlib_external.SourceFileLoader object at 0x00000000038AAB48>
19 spec ModuleSpec(name=‘fileinput’, loader=<_frozen_importlib_external.SourceFileLoader object at 0x00000000038AAB48>, origin=‘D:\ProgramFiles\Python\Python37\lib\fileinput.py’)
20 _state None

内嵌函数或方法

31 breakpointhook
32 callstats
33 _clear_type_cache
34 _current_frames
35 displayhook
36 exc_info
37 excepthook
38 exit
39 getdefaultencoding
40 getallocatedblocks
41 getfilesystemencoding
42 getfilesystemencodeerrors
43 getrefcount
44 getrecursionlimit
45 getsizeof
46 _getframe
47 getwindowsversion
48 _enablelegacywindowsfsencoding
49 intern
50 is_finalizing
51 setcheckinterval
52 getcheckinterval
53 setswitchinterval
54 getswitchinterval
55 setprofile
56 getprofile
57 setrecursionlimit
58 settrace
59 gettrace
60 call_tracing
61 _debugmallocstats
62 set_coroutine_origin_tracking_depth
63 get_coroutine_origin_tracking_depth
64 set_coroutine_wrapper
65 get_coroutine_wrapper
66 set_asyncgen_hooks
67 get_asyncgen_hooks
68 displayhook
69 excepthook
70 breakpointhook

私有或局部

71 _clear_type_cache
72 _current_frames
73 _getframe
74 _enablelegacywindowsfsencoding
75 _debugmallocstats
76 _git (‘CPython’, ‘tags/v3.7.8’, ‘4b47a5b6ba’)
77 _framework
78 _base_executable D:\ProgramFiles\Python\Python37\python.exe
79 _xoptions {}
80 _home D:\ProgramFiles\Python\Python37

剩余

81 spec ModuleSpec(name=‘sys’, loader=)
82 float_info sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
83 int_info sys.int_info(bits_per_digit=30, sizeof_digit=4)
84 hash_info sys.hash_info(width=64, modulus=2305843009213693951, inf=314159, nan=0, imag=1000003, algorithm=‘siphash24’, hash_bits=64, seed_bits=128, cutoff=0)
85 version_info sys.version_info(major=3, minor=7, micro=8, releaselevel=‘final’, serial=0)
86 implementation namespace(cache_tag=‘cpython-37’, hexversion=50792688, name=‘cpython’, version=sys.version_info(major=3, minor=7, micro=8, releaselevel=‘final’, serial=0))
87 flags sys.flags(debug=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, verbose=0, bytes_warning=0, quiet=0, hash_randomization=1, isolated=0, dev_mode=False, utf8_mode=0)
88 thread_info sys.thread_info(name=‘nt’, lock=None, version=None)
89 stderr <_io.TextIOWrapper name=‘’ mode=‘w’ encoding=‘GBK’>
90 stderr <_io.TextIOWrapper name=‘’ mode=‘w’ encoding=‘GBK’>
91 stdin <_io.TextIOWrapper name=‘’ mode=‘r’ encoding=‘GBK’>
92 stdin <_io.TextIOWrapper name=‘’ mode=‘r’ encoding=‘GBK’>
93 stdout <_io.TextIOWrapper name=‘’ mode=‘w’ encoding=‘GBK’>
94 stdout <_io.TextIOWrapper name=‘’ mode=‘w’ encoding=‘GBK’>

内嵌函数或方法

略。

私有或局部

142 _check_methods
143 _exists
144 _get_exports_list
145 _exit
146 _execvpe
147 _Environ
148 _putenv
149 _unsetenv
150 _wrap_close
151 _fspath

剩余

152 loader <_frozen_importlib_external.SourceFileLoader object at 0x0000000002216CC8>
153 spec ModuleSpec(…)
154 environ environ({…})

附录

系统自带的 测试函数。一并附在这里吧。

def _test():
    import getopt
    inplace = False
    backup = False
    opts, args = getopt.getopt(sys.argv[1:], "ib:")
    for o, a in opts:
        if o == '-i': inplace = True
        if o == '-b': backup = a
    for line in input(args, inplace=inplace, backup=backup):
        if line[-1:] == '\n': line = line[:-1]
        if line[-1:] == '\r': line = line[:-1]
        print("%d: %s[%d]%s %s" % (lineno(), filename(), filelineno(),
                                   isfirstline() and "*" or "", line))
    print("%d: %s[%d]" % (lineno(), filename(), filelineno()))

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