我写了很多小脚本,逐行处理文件.在Perl中,我使用
while (<>) {
do stuff;
}
Run Code Online (Sandbox Code Playgroud)
这很方便,因为它不关心输入来自何处(文件或标准输入).
在Python中我使用它
if len(sys.argv) == 2: # there's a command line argument
sys.stdin = file(sys.argv[1])
for line in sys.stdin.readlines():
do stuff
Run Code Online (Sandbox Code Playgroud)
这似乎不是很优雅.是否有一个容易处理文件/标准输入的Python习语?
Ale*_*lli 50
标准库中的fileinput模块正是您想要的:
import fileinput
for line in fileinput.input(): ...
Run Code Online (Sandbox Code Playgroud)
Ric*_*dle 15
import fileinput
for line in fileinput.input():
process(line)
Run Code Online (Sandbox Code Playgroud)
这将迭代sys.argv [1:]中列出的所有文件的行,如果列表为空,则默认为sys.stdin.
| 归档时间: |
|
| 查看次数: |
4942 次 |
| 最近记录: |