開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の13章(ディレクトリ操作)、13.13(練習問題)1を解いてみる。
その他参考書籍
1.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; chomp(my $dir = <STDIN>); $dir = "." if $dir =~ /^\s*$/; die unless -d $dir; chdir $dir or die "can't chdir to $dir: $!"; opendir my $dh, "." or die "cann't open $dir: $!"; my @files = (); foreach(readdir $dh){ next if $_ =~ /^\./; push @files, $_; } for(sort @files){ print "$_\n"; }
入出力結果(Terminal)
$ ./sample.pl . .. .DS_Store .out Oogaboogoo __pycache__ barney betty coconet.dat date.txt fred gilligan.info ginger.info hello_world.pl link_test log log_file.txt lovey.info ls.err maryann.info monkeyman.info numbers perl_kamimura_blog perl_kamimura_blog.html perl_program1 professor.info result sample sample.pl sample.pl.bak sample.py sample_folder sample_text skipper.info some_file some_folder sortable_hash standings.db test.out test.txt test_folder test_link thurston.info tmp.txt tmp_folder total_bytes.dat untitled text 2.txt $ ./sample.pl some_folder . .. .DS_Store sample.pl some_file some_file1 some_file2 $ ./sample.pl abcde Died at ./sample.pl line 11, <STDIN> line 1. $
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import os, re dirname = input("ディレクトリ名を入力: ") if not re.match(r"^/", dirname): dirname = "./" + dirname files = [] try: for file in os.listdir(dirname): # if re.match(r"^\.", file): continue files.append(file) for file in sorted(files): print(file) except FileNotFoundError as err: print("FileNotFoundError発生! {0}".format(err)) except Exception as err: print(err)
入出力結果(Terminal)
$ ./sample.py ディレクトリ名を入力: .DS_Store .out Oogaboogoo __pycache__ barney betty coconet.dat date.txt fred gilligan.info ginger.info hello_world.pl link_test log log_file.txt lovey.info ls.err maryann.info monkeyman.info numbers perl_kamimura_blog perl_kamimura_blog.html perl_program1 professor.info result sample sample.pl sample.pl.bak sample.py sample_folder sample_text skipper.info some_file some_folder sortable_hash standings.db test.out test.txt test_folder test_link thurston.info tmp.txt tmp_folder total_bytes.dat untitled text 2.txt $ ./sample.py ディレクトリ名を入力: some_folder .DS_Store sample.pl some_file some_file1 some_file2 $ ./sample.py ディレクトリ名を入力: abcde FileNotFoundError発生! [Errno 2] No such file or directory: './abcde' $
0 コメント:
コメントを投稿