Greasy Fork is available in English.

Civitai网站辅助

Civitai模型信息辅助获取

< Feedback op Civitai网站辅助

Recensie: Goed - het script werkt zoals het hoort

§
Geplaatst: 23-07-2023

请问能否让“一键下载”的所有文件自动装入一个以该模型网页名称命名的文件夹中呢,感谢作者。

faded_lovMaker
§
Geplaatst: 05-08-2023

蓝奏云链接
写了一段Python程序实现你的要求,不过写的很粗糙,会有很多bug可能,图片命名格式也只支持不加额外后缀的
想要更新什么功能也可以再提,或者自己改,源码放后面了
使用方法:

  1. 下载FileMover.exe
  2. 在同目录下新建FileMover文件夹
  3. 将文件放进文件夹,运行exe

源码:

# -*- coding: UTF-8 -*-
"""
@Project     :FileManage 
@File        :FileMover.py 
@Author      :faded_lov
@Date        :2023/8/5 
@Description :将不同模型文件单独新建一个文件夹,并以标题作为文件夹名
"""

import os
import re


def file_move(dir_path):
    file_list = []  # 目录路径不带文件夹的所有文件的列表
    traversal_list = []  # 用于遍历的列表
    # 遍历路径
    for f_name in os.listdir(dir_path):
        if os.path.isfile(dir_path + f_name):
            file_list.append(f_name)
            if f_name.endswith('.txt') or f_name.endswith('.md'):  # 将说明文档加入遍历列表
                traversal_list.append(f_name)
    print("总文件: " + str(len(file_list)))
    print("测试文件: " + str(len(traversal_list)))
    print("--------------------------------")

    # 遍历文件
    for doc_name in traversal_list:
        # 创建文件夹
        with open(dir_path + doc_name, 'r', encoding='utf-8') as fp:
            fp.readline()
            title = fp.readline()  # 标题文本
            while title == '\n' or title == ' ':
                title = fp.readline()
            pattern = r'[\/:*?"<>|\n]'
            dir_name = re.sub(pattern, '', title)  # 处理后获得的文件夹名
            print(title + '\t->\t' + dir_name)
            if not os.path.exists(dir_path + dir_name + '/'):  # 如果不存在该文件夹
                os.mkdir(dir_path + dir_name + '/')  # 创建文件夹
        # 移动文件
        file_name = os.path.splitext(doc_name)[0]  # 去除文件后缀
        for f_index in file_list:
            if file_name == os.path.splitext(f_index)[0]:  # 查找相同文件名
                os.rename(dir_path + f_index, dir_path + dir_name + '/' + f_index)  # 移动文件


if __name__ == '__main__':
    file_move('./FileMover/')

§
Geplaatst: 25-08-2023

感谢作者大大,程序现在使用下来没有什么问题,唯一问题是不能自动将“.civitai.info”类的说明文件移动到对应的文件夹中。

faded_lovMaker
§
Geplaatst: 11-09-2023

蓝奏云链接
增加了.civitai.info的判断,之前漏掉了


# -*- coding: UTF-8 -*-
"""
@Project     :FileManage 
@File        :fileMover.py
@Author      :faded_lov
@Date        :2023/7/23 21:36 
@Description :将不同模型文件单独新建一个文件夹,并以标题作为文件夹名
"""

import os
import re


def file_move(dir_path):
    file_list = []  # 目录路径不带文件夹的所有文件的列表
    traversal_list = []  # 用于遍历的列表
    # 遍历路径
    for f_name in os.listdir(dir_path):
        if os.path.isfile(dir_path + f_name):
            file_list.append(f_name)
            if f_name.endswith('.txt') or f_name.endswith('.md'):  # 将说明文档加入遍历列表
                traversal_list.append(f_name)
    print("总文件: " + str(len(file_list)))
    print("测试文件: " + str(len(traversal_list)))
    print("--------------------------------")

    # 遍历文件
    for doc_name in traversal_list:
        # 创建文件夹
        with open(dir_path + doc_name, 'r', encoding='utf-8') as fp:
            fp.readline()
            title = fp.readline()  # 标题文本
            while title == '\n' or title == ' ':
                title = fp.readline()
            pattern = r'[\/:*?"<>|\n]'
            dir_name = re.sub(pattern, '', title)  # 处理后获得的文件夹名
            print(title + '\t->\t' + dir_name)
            if not os.path.exists(dir_path + dir_name + '/'):  # 如果不存在该文件夹
                os.mkdir(dir_path + dir_name + '/')  # 创建文件夹
        # 移动文件
        file_name = os.path.splitext(doc_name)[0]  # 去除文件后缀
        for f_index in file_list:
            if file_name == os.path.splitext(f_index)[0]:  # 查找相同文件名
                os.rename(dir_path + f_index, dir_path + dir_name + '/' + f_index)  # 移动文件
            if '.civitai.info' in f_index:  # 特定文件后缀处理
                if file_name == f_index.split('.civitai.info')[0]:
                    os.rename(dir_path + f_index, dir_path + dir_name + '/' + f_index)  # 移动文件


if __name__ == '__main__':
    file_move('./FileMover/')

Reactie plaatsen

Log in om antwoord te geven.