def doChangeCreator(): sql = Text.format( "SELECT id, creator, path FROM Pictures WHERE id BETWEEN {0} AND {1}", id_start, id_end) Common.esc_print("cyan", sql) UPDATE = "UPDATE Pictures SET creator='{0}' WHERE id={1}" client = mysql.MySQL() rows = client.query(sql) for row in rows: id = row[0] creator = row[1] path = row[2] if creator == "作者": ppath = Text.split('/', path) lenpath = len(ppath) new_creator = ppath[lenpath - 2] sql = Text.format(UPDATE, new_creator, id) print(sql) client.execute(sql) print(sql) else: pass return
dp = "'" + dp + "'" nd = "'" + nd + "'" if dp != nd : lines += f"mv -v {dp} {nd}\n" count += 1 return lines # 対象のディレクトリを得る。 if Common.count_args() < 2 : Common.stop(9, "対象のディレクトリとスクリプトファイルの保存先(パス)を指定してください。") # 対象のディレクトリ dir0 = Common.args()[0] if not fs.isDirectory(dir0) : Common.stop(9, f"{dir0} はディレクトリとして存在しません。") # スクリプトファイルのパス savePath = Common.args()[1] # ディレクトリの名前変更コマンドを作成する。 lines = renameDirs(dir0) # スクリプトを作成する。 try : fs.writeAllText(savePath, lines) print(f"\n終わり。{savePath} が作成されました。") except Exception as e : Common.esc_print("red", "エラーを検出。{0}".format(e.message)) exit(9)
sql = Text.format(UPDATE, new_creator, id) print(sql) client.execute(sql) print(sql) else: pass return # # メイン # ID の範囲を決める。 id_start = 1 id_end = 1000000 id_range = Common.readline("id の範囲 (nnnn-nnnn) を入力してください。(省略時はすべて)") if id_range == "": Common.esc_print("yellow", "すべての id に対して実行します。(y/n)") a = Common.readline(">") if y != "y": Common.stop(9, "実行を中止しました。") else: nn = Text.split('-', id_range) if len(nn) == 2: id_start = int(nn[0]) id_end = int(nn[1]) else: Common.stop(9, "範囲が正しくありません。実行を中止しました。") # Pictures テーブルからクエリーを行って対象のデータを得る。 doChangeCreator() print("完了")