这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@IP“,这样的日志文件第天生成一个。所以,我们只要编历这些日志文件,将所有的登陆信息提取出来,并重新组织数据格式就可以了。用python写一个分析工具非常简单,你会说,用glob获取所有的日志文件,然后对每个日志文件都open(logfile),再一行一行的读取;或者用os.walk,也很简单。其实,标准库提供了另一个辅助模块,我们可以非常方便的完成这个工作,那就是fileinput。下面我们就通过fileinput来编历所有的D盘下的文本文件,将每一行的长度打印出来:
import fileinput
from glob import glob
for line in fileinput.input(glob(r'd:\*.txt')):
print fileinput.lineno(), u'文件:', fileinput.filename(), \
u'行号:', fileinput.filelineno(), u'长度:', len(line.strip('\n'))
fileinput.close()
代码非常简单明了。input()接受要编历的所有文件路径的列表,通过filename()返回当前正在读取的文件的文件名,filelineno()返回当前读取的行的行号,而lineno()返回当前已经读取的行的数量(或者序号)。其实,模块内部通过FileInput类来实现文件的编历读取,input()在内部创建了该类的一个对象,当处理完数据行之后,通过fileinput.close()来关闭这个内部对象。
模块非常简单,详细的内容可以参数标准库手册。
分享到:
相关推荐
- fileinput模块:提供对文件的逐行读取能力,常用于文本处理。 - shutil模块:提供文件和目录的高级操作,如复制、删除等。 - tempfile模块:提供创建临时文件和目录的工具。 - StringIO模块:提供类似文件的对象,...
- **fileinput模块**:用于循环读取多个输入文件。 - **shutil模块**:高级文件和文件集合操作,如复制、移动和删除。 - **tempfile模块**:创建临时文件和目录。 - **StringIO和cStringIO模块**:在内存中处理...
《Python 3.7.4 官方文档》PDF版是一个详尽的资源,为学习和深入理解Python 3.7.4版本提供全面指导。这份文档覆盖了Python语言的基础到高级特性,包括语法、标准库、开发工具以及最佳实践等各个方面。如果你更倾向于...
Python的fileinput模块是一个强大的工具,它允许程序员在多个文件之间进行迭代,处理每一行的内容。这个模块特别适合处理大文件,因为它采用迭代的方式逐行读取,避免了一次性加载整个文件到内存中,从而提高了性能...
- I/O 模块:如 fileinput、io、shutil 等用于文件和数据的读写操作。 3. **高级特性**: - 装饰器(decorators):用于修改函数或类的行为。 - 上下文管理器(context managers):通过 with 语句进行资源管理...
* `fileinput` 模块:提供了文件输入相关的功能。 * `shutil` 模块:提供了文件操作相关的功能。 * `tempfile` 模块:提供了临时文件操作相关的功能。 * `StringIO` 模块:提供了字符串操作相关的功能。 * `...
fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行。它的工作方式和readlines很类似,不同点在于它不是将全部的行读到列表中而是创建了一个xreadlines对象。 ...
这就需要用到文件元数据的读取,如`os.stat()`函数可以获取文件的元数据,而`fileinput`模块可以帮助我们快速查看文件内容。 总的来说,这个压缩包中的案例涵盖了Python文件操作的基本技巧,包括遍历文件、重命名...
Python中的fileinput模块是一个内置库,可以非常方便地用于逐行读取文本文件。fileinput模块支持多种方便的特性,例如在循环中逐行处理文件,同时可以处理多个输入流,并在处理过程中获取每行的行号和文件名。其主要...
- 本书旨在全面介绍Python标准库中的各个模块及其用法。 - 适合所有水平的Python开发者,无论是初学者还是有经验的程序员都能从中受益。 - **代码约定** - 本书中的代码遵循Python的标准编码风格,如PEP 8规范,...
### Python使用os模块和fileinput模块来操作文件目录 #### os模块详解 在Python编程过程中,经常需要对文件和目录进行各种操作。Python内置的`os`模块提供了丰富的功能来帮助开发者实现这些需求。 ##### 1. 获取...
- **fileinput模块**:提供了类似UNIX命令行工具的功能。 - **shutil模块**:提供了高级文件操作的服务。 - **tempfile模块**:提供了创建临时文件和目录的便利方法。 - **StringIO模块**:提供了在内存中读写...
- **`fileinput`模块**:提供了读取一系列文件的接口。 - **`shutil`模块**:提供高级文件操作服务。 - **`tempfile`模块**:提供了创建临时文件的方法。 - **`StringIO`模块**:提供了在内存中使用文件对象的接口。...
python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....
Python 提供了 fileinput 模块,通过该模块中的 input() 函数,我们能同时打开指定的多个文件,还可以逐个读取这些文件中的内容。 fileinput 模块中 input() 该函数的语法格式如下: fileinput.input(files=”...
Python文件处理是日常编程中的一项基础任务,而fileinput模块是Python中进行文件处理的一个便捷工具。这篇文章详细介绍了fileinput...对于学习Python文件处理的朋友来说,掌握fileinput模块的使用方法是非常有价值的。