- リネームするファイルの特定・・・マウスでガバッとドラッグ指定したり、フォルダを指定出来る
- ・・特定のフォルダに含まれるファイル
- ・・リネーム条件を満足するファイル
- ・・リネームから除外するファイル
- リネーム条件・・・正規表現を使って指定出来る、連番を指定出来る等リネームに必要な機能が有る
- ・・特定の文字で始まる
- ・・特定の文字を含む
- ・・など
1から始まる連番のファイル名を任意の数字から始まる連番のファイル名に変換する方法
63 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
こんにちは。小熊塁と申します。
タイトルにある通り、1から始まる連番のファイル名を任意の数字から始まる連番のファイル名に変換したいと考えております。
かつて他の質問にてCSVデータから画像を生成する方法を教えて頂いたのですが、その際にファイル名が1.png 2.png…のようになり、CSVごとにそのように生成されました。
それぞれのCSVの画像データを一つのフォルダにまとめて格納したいのですが、同様のファイル名であるため一つ一つのファイル名を変更する必要があります。
しかし、画像データは10000枚以上に及ぶため煩わしいと考えました。
そこでタイトルのような事がMATLAB上で出来ないかと思い、[ https://jp.mathworks.com/matlabcentral/answers/804971- ]この質問を参考にスクリプトを試したのですが、勉強不足で恐縮なのですが、どの箇所を変更すれば思い通りに動作するのか分かりませんでした。
この件に関して、アドバイス等ご教授いただければ幸いです。
よろしくお願いします。
2 Kommentare
Atsushi Ueno
am 11 Sep. 2021
毎回プログラムを作るのも良いですが、リネーム用のツールを使うのはどうでしょう。
頻繁に発生するリネーム作業(変更範囲や条件も毎回変わる)に対し毎回プログラムを作るのは面倒です。私は長らく「Flexible Renamer」を使っていて、最近は「PowerToys」の「PowerRename」に移りました。
要件を整理すると
Akzeptierte Antwort
Hernia Baby
am 11 Sep. 2021
Bearbeitet: Hernia Baby
am 11 Sep. 2021
会社だと機密の関係でインストールできないケースがあると思いますので、一応書いておきます
(ちなみに自分は無断で窓の社でインストールすると会社の人に怒られます)
カレントディレクトリ内~.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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 対話型コントロールとコールバック finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!