Pythonでファイル名を連番に。あるいは日付の連番にする

いまさらかん。
あとやたらめんどくさい

スポンサーリンク

必要となる知識

  • datetimeモジュール
  • osモジュール
  • 文字列を日付にする datetime.datetime.strptime(str, “”)
  • 日付を文字列にする strftime()
  • datetime.timedelta

pythonでのフィル名を日付で連番にするには、datetimeモジュールを使う必要があります。このことから大したことはやってないのに、やたらがたがたとめんどくさいです。

上記に書きている日付を文字列にする strftime() については str() を使えばいいので使いませんが、あえて紹介です。

strptimeもstrftimeも datetime.datetime ベースなのでやたらめんどくさいです。ちなみに datetime.datetime を datetime.date に変換するには date() を使います。

これはたからみると何言ってるかわからないかもなあ。

スポンサーリンク

サンプルコード

import os
import datetime as d

do = input("do you serial_num? or date_serial_num?: --(n / d)-- ")

os.chdir("../")

count = 0
one_day = d.timedelta(1)

if do == "n":
file_name = input("file_name?: ")
extension = input("extension?: ")
    for f in os.listdir():
        if f.endswith("." + extension):
            count += 1
            os.rename(f, file_name + str(count) + "." + extension)
elif do == "d":
file_name = input("file_name?: ")
extension = input("extension?: ")
    date = input("date?: (yyyy-mm-dd) ")
    _datetime = d.datetime.strptime(date, "%Y-%m-%d")
    for f in os.listdir():
        if f.endswith("." + extension):
            _date = _datetime.date()
            os.rename(f, file_name + " " + str(_date) + "." + extension)
            _datetime += one_day
else:
    print("you_input_key no such pattern")

誰でも書けそうなコードだし、解説もなにもない。

雑感

めんどくさい。

rubyでは日付関連どうだったか・
今度やってみよう。

コメント

タイトルとURLをコピーしました