PTT評價

Re: [求救] 依清單,大量找圖的方法?

看板MAC標題Re: [求救] 依清單,大量找圖的方法?作者
jkchang
(JK)
時間推噓 推:0 噓:0 →:1

我想你圖片檔有2-3萬張,用雜湊比對會比較快,
下面是perl的寫法,看看適合嗎?
#!/usr/bin/perl
use File::Copy;

$PWD = `pwd`;
chomp $PWD; #刪去換行符
$dirname = $PWD."/pic"; #圖片檔目錄
$dst_dir = $PWD."/Desktop/tmp/"; #目的路徑
#讀取 pic 目錄下圖片檔並存入HASH
opendir(DIR, $dirname) or die "Could not open $dirname\n";
while ($fname = readdir(DIR)) {
next if $fname eq "." or $fname eq "..";
next if $fname =~ /^\./;
$base = (split(/\./,$fname))[0]; #取出basename
@pnum = split(" ", $base);
$part_num = @pnum[$#pnum]; #取出料號
$HASH{$part_num} = $fname;
}
closedir(DIR);
#驗證HASH內容
#while(($key, $value) = each %HASH) {
# print "$key => $value\n";
#}

#讀取 txt 檔案內容當 key 比對HASH value 是否有符合
#有就 copy 到tmp目錄
$filename = "list.txt";
open FILE, $filename or die "Can't open $filename";
while (<FILE>) {
chomp;
if (exists ($HASH{$_})) {
$name = $HASH{$_};
$oldfile = $dirname."/".$name;
$newfile = $dst_dir.$name;
print "$_ pic_file:$name\n";
print "copy to:$newfile\n\n";
copy ($oldfile, $newfile);
}
}
※ 引述《htw1011 (大衛)》之銘言:
: 最近接了「熊貓」的案子,有大量找圖的需求。
: 想問大家有沒有方法/或是小軟體/或是小技巧,
: 可以大量找圖,並copy/或move到另一個資料夾的方法。
: 目前:
: A清單(.txt)有1000筆條碼資料,
: 找圖時也是1筆1筆複製,再貼到圖庫資料夾(約2~3萬張圖)中去找。
: 找到後,先拖到桌面的一個暫存資料夾去。
: -----
: A清單.txt 長這樣子:
: 4710095324160
: 4711001302104
: 圖庫資料夾大約長這樣:
: 泰山 純葵花油 2L 4710095324160.jpg
: 萬家香 香菇素蠔油 1L 4711001302104.jpg
: ----
: 有試玩過 Automator / Pathfinder 等軟體,
: 都沒有成功。所以上來問問大家,
: 有沒有大量找圖,並複製到指定資料夾的好方法。
: 先謝謝大家!

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.67.167.191 (臺灣)
PTT 網址

aeolus811tw01/09 19:50殺雞焉用牛刀,一行指令就能做的事情