def insertFolders(parentDir) : dirs = fs.listDirectories(parentDir) for dir in dirs : # 作者名 parts = Text.split("/", dir) creator = parts[len(parts) - 1] # 作品名s subdirs = fs.listDirectories(dir) if len(subdirs) == 0 : p = Text.split(' ', creator) creator = p[0] insertData(dir, creator) else : for subdir in subdirs : insertData(subdir, creator) return
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 renameDirs(dir0) : count = 0 lines = "#!/bin/bash\n" dirs = fs.listDirectories(dir0) for dp in dirs : nd = rename(dp) dp = "'" + dp + "'" nd = "'" + nd + "'" if dp != nd : lines += f"mv -v {dp} {nd}\n" count += 1 # 1件もない場合はサブディレクトリを見てみる。 if count == 0 : for dir1 in dirs : dirs1 = fs.listDirectories(dir1) for dp in dirs1 : nd = rename(dp) dp = "'" + dp + "'" nd = "'" + nd + "'" if dp != nd : lines += f"mv -v {dp} {nd}\n" count += 1 return lines
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 : remove_paren.py directory") parent = Common.args(0) print("cd " + parent) dirs = fs.listDirectories(parent, True) for d in dirs : parts = Text.split("/", d) oldname = parts[len(parts)-1] if Text.re_contain(r"^\[.+\].+", oldname) : d2 = Text.re_replace(r"\[.+\]\s", "", d) d2 = Text.trim(d2) parts = Text.split("/", d2) newname = parts[len(parts)-1] print("ren \"{0}\" \"{1}\"".format(oldname, newname)) print("echo Done.")
n = len(parts) if n > 2 : title = parts[n-1] creator = parts[n-2] else : title = "title" creator = "creator" sql = f"INSERT INTO Pictures(TITLE, CREATOR, PATH, MARK, INFO, FAV, COUNT, BINDATA) VALUES('{title}', '{creator}', '{path}', '', '', 0, 0, 0)" print(sql) mysql.execute(sql) return # START # パラメータ確認 if Common.count_args() < 1 : Common.stop("Usage : InsPictures.py directory") dir_parent = Common.args(0) # MySQL に接続 mysql = MySQL.MySQL() # 画像ファイルを含むサブディレクトリ一覧を得る。 dirlist = fs.listDirectories(dir_parent, True) for dir in dirlist : dirlist2 = fs.listDirectories(dir, True) if len(dirlist2) == 0 : InsertData(dir) else : for path in dirlist2 : InsertData(path) print("Done.")
#!/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.")