私は通常、Perlで次の操作を行います。その後、cat foo.txt | whatever.pl
コマンドラインで渡されるすべてのファイル行をどのように反復処理しますか?
は今、私はPythonでこれをやりたい
whatever.pl
while(<>) {
#do whatever;
}
。私はsys.stdin
を試しましたが、私がPerlで行ったようにする方法はわかりません。入力をどのように読むことができますか?
私は通常、Perlで次の操作を行います。その後、cat foo.txt | whatever.pl
コマンドラインで渡されるすべてのファイル行をどのように反復処理しますか?
は今、私はPythonでこれをやりたい
whatever.pl
while(<>) {
#do whatever;
}
。私はsys.stdin
を試しましたが、私がPerlで行ったようにする方法はわかりません。入力をどのように読むことができますか?
このお試しください:
import fileinput
for line in fileinput.input():
process(line)
import sys
def main():
for line in sys.stdin:
print line
if __name__=='__main__':
sys.exit(main())
-1:main returns None - OSに返される値を完全には*明らかにしていません。 –
@ S.Lott:sys.exitがどのように扱うかは完全にはっきりしています。 –
これは私が通常行う方法ですが、OPはコマンドラインで指定されたすべてのファイルを反復処理したいのに対して、stdinは繰り返し処理します。このユースケースでは、fileinputが使えます。 –
このような何か:
import sys
for line in sys.stdin:
# whatever
import sys
for line in sys.stdin:
# do stuff w/line
+1それはので、この方法は、 "sys.stdinを内の行のための" よりも柔軟であるがファイル名の作業はcmdの行引数として渡されます。 – user26294