def show_img_folder() : files = fs.listFiles(IMG_FOLDER) piclist = "<ul>" for f in files : fname = fs.getFileName(f.decode()) piclist += "<li><img src=\"{0}\" /> {1}</li>".format(f.decode(), fname) piclist += "</ul>" return render_template("show_img_folder.html", piclist=piclist)
def api_bindata_insert(folder) : files = fs.listFiles(folder, asstr=True) count = 0 try : for f in files : ext = Text.tolower(fs.getExtension(f)) if ext in [".jpg", ".jpeg", ".png", ".gif"] : util.insertBinaries(f) count += 1 except Exception as e : print(str(e)) return count
def api_image_resize(folder, size) : files = fs.listFiles(folder, asstr=True) count = 0 try : for f in files : ext = Text.tolower(fs.getExtension(f)) if ext in [".jpg", ".jpeg", ".png", ".gif"] : util.resizeImage(f, size) count += 1 except Exception as e: print(str(e)) return count
def find(): folder = request.args.get("folder") findstr = request.args.get("findstr") files = fs.listDirectories(folder, asstr=True) + fs.listFiles(folder, asstr=True) items = [] for f in files: if Text.contain(findstr, f): items.append(getFileInfo(f)) else: pass return jsonify(items)
def renameAll(args): dir = args[0] wild = args[1] fix = args[2] cols = args[3] i = 1 files = fs.listFiles(dir, wild) sortedFiles = sorted(files) for fold in sortedFiles: ext = fs.getExtension(fold) fmt = "{0:0" + cols + "d}" fnew = dir + "/" + fix + Text.format(fmt, i) + ext cmd = f"mv -v {fold} {fnew}" print(cmd) i += 1
def delete_badchars(folder): # 画像ファイル一覧を得る。 print(folder) files = fs.listFiles(folder, asstr=True) # 画像ファイルをリネーム for fpath in files: #fpath = Common.from_bytes(f) ext = fs.getExtension(fpath).lower() if ext == ".jpg" or ext == ".png" or ext == ".gif": fpath_new = fpath.replace("#", "").replace("+", "") if fpath != fpath_new: print("mv -v '" + fpath + "' '" + fpath_new + "'") else: print("Non image passed: " + fpath) return
def list_files(): folder = request.args.get("folder") orderby = request.args.get("orderby") hiddenfile = request.args.get("hiddenfile") # ディレクトリ一覧 items1 = [] folders = fs.listDirectories(folder, asstr=True) for f in folders: fn = fs.getFileName(f) if hiddenfile == 1: # 隠しファイルを表示する。 items1.append(getFileInfo(f)) # すべてのフォルダ else: if not fn.startswith("."): # 隠しファイル(フォルダ)は表示しない。 items1.append(getFileInfo(f)) if orderby == "size" or orderby == "rsize": items1 = sortby("name", items1) else: if len(items1) > 0: items1 = sortby(orderby, items1) # ファイル一覧 files = fs.listFiles(folder, asstr=True) items2 = [] for f in files: fn = fs.getFileName(f) if hiddenfile == 1: # 隠しファイルを表示する。 items2.append(getFileInfo(f)) # すべてのファイル else: if not fn.startswith("."): # 隠しファイルは表示しない。 items2.append(getFileInfo(f)) if len(items2) > 0: items2 = sortby(orderby, items2) # ディレクトリ一覧とファイル一覧を1つのリストにする。 items = [] for i in items1: items.append(i) for i in items2: items.append(i) return jsonify(items)
#!/usr/bin/env python3 # サブディレクトリ内にあるファイルを自ディレクトリに名前を変えてコピーする。 from Py365Lib import Common, FileSystem as fs, Text # START # パラメータ確認 if Common.count_args() < 1: Common.stop("Usage : copy_subdir_files.py directory") mydir = Common.args(0) # サブディレクトリ一覧を得る。 dirs = fs.listDirectories(mydir, True) # サブディレクトリごとに繰り返す。 for d in dirs: print(d) files = fs.listFiles(d, "*", True) parts = Text.split("/", d) h = parts[len(parts) - 1] for f in files: f1 = Text.replace("/", "\\", mydir + "/" + h + "/" + fs.getFileName(f)) f2 = Text.replace("/", "\\", mydir + "/" + h + fs.getFileName(f)) print(f"copy \"{f1}\" \"{f2}\"") # 終わり print("Done.")
# ここから開始 if Common.count_args() == 0: print("画像縮小専用 Usage: python smalls.py folder size save_path") folder = Common.readline( "画像ファイルの存在するフォルダパスを入力します。(Enter のみで中止。ファイルサイズと保存先はデフォルト値)> ") if folder == "": Common.stop("処理を中止しました。") else: folder = Common.args(0) if Common.count_args() >= 2: SIZE = int(Common.args(1)) if Common.count_args() >= 3: SAVEPATH = Common.args(2) # 指定されたフォルダ内の画像ファイル一覧を得る。 files = fs.listFiles(folder) a = Common.readline( f"{len(files)} 個のファイルを {SIZE} x {SIZE} 以内に縮小して {SAVEPATH} に保存します。(y/n)") if a != 'y': Common.stop(9, "処理を中断しました。") if not fs.exists(SAVEPATH): fs.mkdir(SAVEPATH) i = 0 for f in files: #fn = f.decode() fn = f ext = fs.getExtension(fn) if (ext == ".jpg" or ext == ".png"):
def rename_files(folder): # 画像ファイル一覧を得る。 print(folder) files = fs.listFiles(folder, asstr=True) # 画像ファイルをリネーム for fpath in files: #fpath = Common.from_bytes(f) ext = fs.getExtension(fpath).lower() # 画像ファイルのみを対象にする。 if ext == ".jpg" or ext == ".png" or ext == ".gif": # ファイル名が nnnnnnn_pnn[.jpg] か fname = fs.getFileName(fpath) ff = Text.split("_", fname) if not (ext in ff[1]): ff[1] += ext if len(ff) == 3: # 3分割できて 'master' が含まれる場合は 'master..' 部分を削除する。 #fname_old = fname fname = ff[0] + '_' + ff[1] #print(fname_old + " to " + fname) elif len(ff) != 2: # _ で2分割できない場合(ファイル名の形式が異なる場合)はスキップする。 print("Skipped " + fname) continue else: # その他の場合は何もしない。(2分割できた場合) pass # 連続番号部分の形式を確認する。 sf = ff[1] if ff[1].startswith('p'): if len(ff[1]) == 6 or (len(ff) == 3 and len(ff[1]) == 2): # 連続番号が1桁の場合 sf = "p0" + Text.substring(ff[1], 1) newname = folder + "/" + ff[0] + "_" + sf fs.move(fpath, newname) print("Renamed: " + newname) elif len(ff) == 3 and len(ff[1]) == 7: # _master1200 があり連続番号が2桁の場合 newname = folder + "/" + fname fs.move(fpath, newname) elif len(ff[1]) == 8 or (len(ff) == 3 and len(ff[1]) == 4): # 連続番号が3桁または連続番号が3桁かつ _master1200 がある場合 sn = Text.substring(ff[1], 1) if sn == '1': # 連続番号が3桁かつ100番台の場合 sf = "q" + Text.substring(ff[1], 2) newname = folder + "/" + ff[0] + "_" + sf fs.move(fpath, newname) print("Renamed: " + newname) elif sn == '2': # 連続番号が3桁かつ200番台の場合 sf = "r" + Text.substring(ff[1], 2) newname = folder + "/" + ff[0] + "_" + sf fs.move(fpath, newname) print("Renamed: " + newname) else: # 連続番号が3桁かつ300番台以上の場合はサポートしない(スキップする) pass else: # 連続番号が2桁の場合 #print("Passed: " + fpath) pass else: #fs.move(fpath, fpath + ".jpg") print("Non image passed: " + fpath) return