这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@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` 模块:提供了字符串操作相关的功能。 * `...
例如,对于文件操作,可能会强调os、sys、io、fileinput等模块的使用方法;对于网络编程,可能涉及socket、http.client、urllib、email等模块;而对于其他主题,如数据结构、算法等,可能会包括collections、heapq、...
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....
3. 命令行交互:使用fileinput模块。 4. 创建临时文件和文件夹:使用tempfile模块。 5. 高级文件和文件夹处理:使用shutil模块。 四、注意事项 1. 在某些平台上,修改environ会导致内存泄露。 2. putenv()函数...
Python 提供了 fileinput 模块,通过该模块中的 input() 函数,我们能同时打开指定的多个文件,还可以逐个读取这些文件中的内容。 fileinput 模块中 input() 该函数的语法格式如下: fileinput.input(files=”...