開発環境
- 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(練習問題)3を解いてみる。
その他参考書籍
3.
コード(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 . .. .appcfg_nag .bash_history .bash_profile .bash_profile.macports-saved_2011-12-06_at_18:40:28 .bash_profile.pysave .cache .calibre_calibre GUI.lock .CFUserTextEncoding .config .cpan .cpanplus .cups .dropbox .DS_Store .dvdcss .emacs.d .emacs.el .emacs.el~ .exrc .fontconfig .fonts .fonts.cache-1 .gdb_history .gem .ghc .gnupg .idlerc .inputrc .irb_history .KeyHoleTV .lesshst .local .macports .MakeMKV .mono .mysql_history .pearrc .pyhistory .pystartup .recently-used .recently-used.xbel .rnd .serverauth.87078 .sh_history .subversion .swl .swm .swn .swo .swp .Trash .viminfo .vimrc .wing101-4 .Xauthority .Xcode .Xmodmap Calibre Library Desktop Documents Downloads Dropbox KindleGen Library Movies Music nltk nltk_data pear Pictures Projects Public Sites $ ./sample.pl . . .. .DS_Store .out __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 Oogaboogoo 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 can't chdir to abcde: No such file or directory at ./sample.pl line 13, <STDIN> line 1. $
ちなみにJavaScriptの場合。
コード(BBEdit)
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import glob, os, re
dirname = input("ディレクトリ名を入力: ")
try:
if re.match(r"^\s*$", dirname):
os.chdir(os.environ['HOME'])
else:
os.chdir(dirname)
for file in glob.glob('.*') + glob.glob('*'):
print(file)
except FileNotFoundError as err:
print("FileNotFoundError発生!")
print(err)
except Exception as err:
print("未知の例外発生!")
print(err)
入出力結果(Terminal)
kamimura$ ./sample.py ディレクトリ名を入力: .appcfg_nag .bash_history .bash_profile .bash_profile.macports-saved_2011-12-06_at_18:40:28 .bash_profile.pysave .cache .calibre_calibre GUI.lock .CFUserTextEncoding .config .cpan .cpanplus .cups .dropbox .DS_Store .dvdcss .emacs.d .emacs.el .emacs.el~ .exrc .fontconfig .fonts .fonts.cache-1 .gdb_history .gem .ghc .gnupg .idlerc .inputrc .irb_history .KeyHoleTV .lesshst .local .macports .MakeMKV .mono .mysql_history .pearrc .pyhistory .pystartup .recently-used .recently-used.xbel .rnd .serverauth.87078 .sh_history .subversion .swl .swm .swn .swo .swp .Trash .viminfo .vimrc .wing101-4 .Xauthority .Xcode .Xmodmap Calibre Library Desktop Documents Downloads Dropbox KindleGen Library Movies Music nltk nltk_data pear Pictures Projects Public Sites $ ./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 コメント:
コメントを投稿