def add_square_brackets(text):
# 检查字符串是否以 [] 包裹
if not (text.startswith("[") and text.endswith("]")):
# 如果没有,则添加 []
return f"[{text}]"
return text
这个可以判断出字符串是否被[]包裹,是则返回源文字,不是则添加[]。
文本.startswit("[")
判断文本前方是否有[
文本.endswith("]")
判断文本后方是否有]
if not (text.startswith("[") and text.endswith("]")):
所以合起来的意思为如果text前方没有[和后方没有]同时满足才会执行`return f"[{text}]"'的操作
import rarfile
# 打开rar文件
with rarfile.RarFile('甘サド美人義理姉にマゾ乳首責めで乳首開発されたボク.rar') as rf:
# 获取压缩包中的所有文件名
file_names = rf.namelist()
# 获取文件夹的层级
outer_folders = set()
for name in file_names:
if name.endswith('/'): # 判断文件夹
outer_folder = name.split('/')[0] # 获取最外层的文件夹名
outer_folders.add(outer_folder)
# 输出最外层文件夹作为主文件夹
print("主文件夹是:")
for folder in outer_folders:
print(outer_folders)
这里是使用rarfile来查看压缩包内的主文件夹的名称。
if name.endswith('/'):
如果是已/结尾的那么是文件夹,如果是文件夹的话outer_folder = name.split('/')[0]
文件夹名字.split('/') 通过/分割后将第一个加入set去重集合outer_folders.add(outer_folder)
,循环这样的操作可以得到所有的主文件夹名称。
from concurrent.futures import ThreadPoolExecutor
def 程序(参数):
print(参数)
with ThreadPoolExecutor(max_workers=最大线程数) as executor:
executor.map(程序, 参数列表)
多线程操作只需要通过ThreadPoolExecutorr即可简单的创建多线程操作。