Linux 下很多系统管理的工作都会涉及读取档案的内容, 在 Python 下可以透过多个方法开启档案、读取 Pipe 及以参数方式读取档案。
fileinput 是 Python 的内建模组, 它可以用很简单的方法, 实现以上的工作。fileinput 模组提供处理一个或多个档案的功能, 可以是透过 Pipe 输入、用参数方法指定档案, 或者在程式码指定档案也可以。
以下是 fileinput 模组的使用例子:
|
1 2 3 4 5 6 |
#!/usr/bin/python import fileinput for line in fileinput.input(): print line.replace("\n", "") |
看到上面的程式码很简单, 但已经可以将 Pipe 及 参数输入的档案读取, 并逐行印出, 例如:
$ ls | ./test.py
$ ./test.py /etc/passwd
$ ./test.py < /etc/passwd
$ ./test.py /etc/passwd
$ ./test.py < /etc/passwd
上面的例子是透过指令指令读取的内容, 如果要在程式码内指定档案, 只要在 fileinput.input 指定, 可以这样写:
|
1 2 3 4 5 6 |
#!/usr/bin/python import fileinput for line in fileinput.input(files='/etc/passwd'): print line.replace("\n", "") |
要同时读取多个档案, 只要在 files 指定即可:
|
1 2 3 4 5 6 |
#!/usr/bin/python import fileinput for line in fileinput.input(files=('test.txt', '/etc/passwd')): print line.replace("\n", "") |