Tôi viết rất nhiều tập lệnh nhỏ xử lý các tệp trên cơ sở từng dòng. Trong Perl, tôi sử dụngPython tương đương với Perl trong khi (<>) {...}?
while (<>) {
do stuff;
}
Điều này rất tiện lợi vì nó không quan tâm đến đầu vào (tệp hoặc stdin).
Trong Python tôi sử dụng này
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
mà không có vẻ rất thanh lịch. Có một thành ngữ Python có thể dễ dàng xử lý đầu vào tập tin/stdin?
Từ quan điểm "mã có thể đọc", tôi thích mã Python của bạn vì hầu hết mọi người không làm việc với Perl sẽ không biết mã Perl có nghĩa là gì. – schnaader
Bạn có thể ít nhất bỏ qua. Readlines() – Jiri
Nhân bản: http://stackoverflow.com/questions/715277/how-do-i-iterate-over-all-lines-of-files-passed-on-the-commandline -in-python –