排序-python-1中有2个问题,优化一个焦油提取函数/合并2个函数
发布时间:2022-06-29 03:54:58 413
相关标签: # node.js
首先,我试图了解是否有可能优化这段代码
import tarfile
import os
def members(tf, parent_path, dest_path, type): #type is used to determine if i am looking for a single file or a whole folder
l = len(parent_path)
for member in tf.getmembers():
if type == "file":
if "champion.json" in member.name:
member.path = os.path.join(dest_path, member.path[l:])
yield member
if type == "folder":
if member.path.startswith(parent_path):
member.path = os.path.join(dest_path, member.path[l:])
yield member
with tarfile.open("Data\\tar\\dragontail.tgz") as tar:
tar.extractall(members=members(tar, 'img/champion/splash/', 'Data\\tar\\new\\splash', "folder"))
tar.extractall(members=members(tar, 'img/champion/loading/', 'Data\\tar\\new\\loading', "folder"))
tar.extractall(members=members(tar, 'img/champion/centered/', 'Data\\tar\\new\\centered', "folder"))
tar.extractall(members=members(tar, '12.11.1/data/en_US/', 'Data\\tar\\new\\', "file"))
因此,我要做的是打开我的tar文件并搜索我需要的文件/文件夹,但就我所知,每次搜索某个内容时,我都在搜索所有的tar文件,难道不可能搜索一次并提取匹配项吗?这不是更有效率吗?
在我的第二个问题中,我试图找出是否有可能将上述代码与此合并
import os
import shutil
import glob
from os import path
from Champions import Champion_list
def img_move(format):
parent_path = "Data\\tar\\new\\"+format+"\\"
dest_path = "Data\\Champions"
for Champ in Champion_list:
for img in glob.glob(parent_path+Champ+'*'):
File = path.basename(img)
Champ_dest = os.path.join(dest_path,Champ)
#Full_dest = os.path.join(dest_path,Champ, format)
Full_dest = os.path.join(Champ_dest, format)
if not path.exists(Champ_dest):
os.mkdir(Champ_dest)
if not path.exists(Full_dest):
os.mkdir(Full_dest)
print(img, os.path.join(Full_dest, File))
shutil.move(img, os.path.join(Full_dest, File))
img_move("splash")
img_move("loading")
img_move("centered")
在这里,我基本上只是对我提取的文件进行排序,然后将它们移到我需要它们的地方。这可能看起来有点不确定,但我在这里做的要点是,我得到了一个文件夹,其中充满了不同冠军的图片,我需要将它们排序到其他类似这样嵌套的文件夹中
Data
Champions
(champion name matching the image name)
folder (name matching the original style of img splash/loading/centered
是否可以合并这两个函数,以便在提取的同时进行排序,这样做是否值得?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报