Civitai模型信息辅助获取
蓝奏云链接
写了一段Python程序实现你的要求,不过写的很粗糙,会有很多bug可能,图片命名格式也只支持不加额外后缀的
想要更新什么功能也可以再提,或者自己改,源码放后面了
使用方法:
FileMover
文件夹源码:
# -*- 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/')
感谢作者大大,程序现在使用下来没有什么问题,唯一问题是不能自动将“.civitai.info”类的说明文件移动到对应的文件夹中。
蓝奏云链接
增加了.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/')
请问能否让“一键下载”的所有文件自动装入一个以该模型网页名称命名的文件夹中呢,感谢作者。