2012年12月31日月曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の13章(ディレクトリ操作)、13.13(練習問題)5を解いてみる。

その他参考書籍

5.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
use File::Basename;
use File::Spec;

my($old_name, $new_name) = @ARGV;
die $! unless -f $old_name;
if(-d $new_name){
  my $basename = basename $old_name;
  $new_name = File::Spec->catfile($new_name, $basename);
}
rename $old_name, $new_name or die "can't rename $old_name to $new_name:$!";

入出力結果(Terminal)

$ ls mv*
mv.txt
$ ./sample.pl mv.txt mv1.txt
$ ls mv*
mv1.txt
$ ./sample.pl mv1.txt some_folder
$ ls ./some_folder/mv*
./some_folder/mv1.txt
$ ls mv*
ls: mv*: No such file or directory
$

pythonの場合。

sample.py

コード(BBEdit)

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import os, sys

old_name, new_name = sys.argv[1], sys.argv[2]

if os.path.isdir(new_name):
    new_name = os.path.abspath(new_name) + os.path.sep + old_name

os.rename(old_name, new_name)

入出力結果(Terminal)

$ ls mv*
mv.txt
$ ./sample.py mv.txt mv1.txt
$ ls mv*
mv1.txt
$ ./sample.py mv1.txt some_folder
$ ls ./some_folder/mv*
./some_folder/mv1.txt
$ ls mv*
ls: mv*: No such file or directory
$

0 コメント:

コメントを投稿