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