- リネームするファイルの特定・・・マウスでガバッとドラッグ指定したり、フォルダを指定出来る
- ・・特定のフォルダに含まれるファイル
- ・・リネーム条件を満足するファイル
- ・・リネームから除外するファイル
- リネーム条件・・・正規表現を使って指定出来る、連番を指定出来る等リネームに必要な機能が有る
- ・・特定の文字で始まる
- ・・特定の文字を含む
- ・・など
1から始まる連番のファイル名を任意の数字から始まる連番のファイル名に変換する方法
63 ビュー (過去 30 日間)
古いコメントを表示
こんにちは。小熊塁と申します。
タイトルにある通り、1から始まる連番のファイル名を任意の数字から始まる連番のファイル名に変換したいと考えております。
かつて他の質問にてCSVデータから画像を生成する方法を教えて頂いたのですが、その際にファイル名が1.png 2.png…のようになり、CSVごとにそのように生成されました。
それぞれのCSVの画像データを一つのフォルダにまとめて格納したいのですが、同様のファイル名であるため一つ一つのファイル名を変更する必要があります。
しかし、画像データは10000枚以上に及ぶため煩わしいと考えました。
そこでタイトルのような事がMATLAB上で出来ないかと思い、[ https://jp.mathworks.com/matlabcentral/answers/804971- ]この質問を参考にスクリプトを試したのですが、勉強不足で恐縮なのですが、どの箇所を変更すれば思い通りに動作するのか分かりませんでした。
この件に関して、アドバイス等ご教授いただければ幸いです。
よろしくお願いします。
2 件のコメント
Atsushi Ueno
2021 年 9 月 11 日
毎回プログラムを作るのも良いですが、リネーム用のツールを使うのはどうでしょう。
頻繁に発生するリネーム作業(変更範囲や条件も毎回変わる)に対し毎回プログラムを作るのは面倒です。私は長らく「Flexible Renamer」を使っていて、最近は「PowerToys」の「PowerRename」に移りました。
要件を整理すると
採用された回答
Hernia Baby
2021 年 9 月 11 日
編集済み: Hernia Baby
2021 年 9 月 11 日
会社だと機密の関係でインストールできないケースがあると思いますので、一応書いておきます
(ちなみに自分は無断で窓の社でインストールすると会社の人に怒られます)
カレントディレクトリ内~.pngの名前をここでまず一気に抜きだします
tmp = dir('*.png');
fname = {tmp.name};
~.pngの数だけ新しい名前を生成します
ここが今回変わったところです
任意の数字からスタートしたいとのことなので、それを n とします
n = 50; % ← ここからスタート
cnt = n;
while cnt <= length(fname) + n-1 % ← データ長分だけ繰り返す
nfname{cnt-n+1} = sprintf('%i.png',cnt); % ← ここで「数字.png」を作ってる
cnt = cnt+1;
end
名前を書き替えます
movefile はファイルやフォルダーの移動または名前変更を行います
ここではfname内の名前からnfname内の名前に一対一で書き換えてます
for k=1:length(fname)
movefile(fname{k}, nfname{k});
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 対話型コントロールとコールバック についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!