1
我有很多类似于下面的Perl脚本。它所做的是它会自动打开作为命令行参数给出的任何文件,并在这种情况下打印该文件的内容。如果没有给出文件,它将从标准输入中读取。自动打开在Python中作为命令行参数给出的文件
while (<>) {
print $_;
}
有没有办法在Python中做类似的事情,而不必明确地打开每个文件?
我有很多类似于下面的Perl脚本。它所做的是它会自动打开作为命令行参数给出的任何文件,并在这种情况下打印该文件的内容。如果没有给出文件,它将从标准输入中读取。自动打开在Python中作为命令行参数给出的文件
while (<>) {
print $_;
}
有没有办法在Python中做类似的事情,而不必明确地打开每个文件?
在Python的标准库中的fileinput模块正是为此而设计的,我引用来自我只是给了URL中的一些代码:
import fileinput
for line in fileinput.input():
process(line)
使用print
代替process
,你有确切相当于你的Perl代码。
图书馆的参考手册现在已经是我血腥的床头阅读了几个星期了。这是非常不公平的,你有更多的Python经验。 o.O(但我很欣赏答案,但是) – msw 2010-03-28 17:02:49
@msw它并不需要几年。如果你仅仅浏览了足够多的时间,就可以感受到已经存在的东西,甚至没有实际使用相关模块。当然总会有惊喜(robotparser?Yikes!)。如果有的话,我认为需要多年才会意外地做到这一点。 ;) – 2010-03-28 20:30:56
@msw,我同意David的观点 - 我在1999年12月发现了Python,不到一年之后,Steve Holden已经为comp.lang.python--)上的丰富答案昵称为“martellibot”。 – 2010-03-28 21:05:18