首页 > 解决方案 > python中的for循环帮助

问题描述

需要你的帮助吗?

我正在尝试将列表 newtracks(文件夹中的歌曲名称)与电子表格中的列表 filezto 和专辑相匹配。如果文件夹中的歌曲名称与列表 filezto 匹配,并且有一个 Nasb 专辑,则将其复制到文件夹列表(ordfldrtosrt),如果不是,则将 nasb 专辑复制到列表(ntsubfldrs)。

由于某种原因,当运行 if 语句时不会同步它们以打印它们匹配并将文件复制到文件夹中。我尝试了不同的选项,但无法使其工作。提前致谢。

albm = ["NASB", "NASB", "NASB", "NASB", "NTSB", "NTSB", "NTSB", "NTSB"]

newtracks = [
    "Track1.mp3",
    "Track2.mp3",
    "Track3.mp3",
    "Track4.mp3",
    "Track5.mp3",
    "Track5.mp3",
]

filezto = [
    "Track1.mp3",
    "Track2.mp3",
    "Track3.mp3",
    "Track4.mp3",
    "Track5.mp3",
    "Track5.mp3",
]

ordfldrtosrt = ["1-GEN-GENE", "2 - EXO - Exos", "3 - LEV - Lev", "4 - NUM - Numb"]

ntsubfldrs = ["1-MAT-Matt", "2 - MRK - Mar", "3 - LUK - LI", "4 - JHN - Jo"]

for album in albm:
    for newtracks, filezto, ordfldrtosrt, ntsubfldrs in (
        (ntk, ft, otm, nts)
        for ntk in newtracks
        for ft in filezto
        for otm in ordfldrtosrt
        for nts in ntsubfldrs
    ):
        if album == "Nasb" and newtracks == filezto:

            print("Yes", newtracks, " files to", filezto)

            # shutil.copy('C:\\Users\\mrdrj\\Desktop\\SJ\\NASB\\'+newtracks,  'D:\\Desktop\\pythonProject\\Nasb\\'+ ordfldrtosrt+'\\'+newtracks)
        else:
            print("No", newtracks, " files to", filezto)
            # shutil.copy('C:\\Users\\mrdrj\\Desktop\\SJ\\NASB\\'+newtracks,  'D:\\Desktop\\pythonProject\\Nasb\\'+ ntsubfldrs +'\\'+newtracks)


标签: pythonpython-3.xlistloopsfor-loop

解决方案


从您的上一条评论中,我猜您有一个(专辑,曲目)列表,spreadsheet您正在尝试将其与以下专辑中的曲目列表相匹配folder

folder = [
    "Track1.mp3",
    "Track2.mp3",
    "Track3.mp3",
    "Track4.mp3",
    "Track5.mp3",
    "Track5.mp3",
]
spreadsheet = [
    ( "NASB", "Track1.mp3" ),
    ( "NASB", "Track2.mp3" ),
    ( "NASB", "Track3.mp3" ),
    ( "NASB", "Track4.mp3" ),
    ( "NASB", "Track5.mp3" ),
    ( "NASB", "Track5.mp3" ),
    ( "NTSB", "Track1.mp3" ),
    ( "NTSB", "Track2.mp3" ),
    ( "NTSB", "Track3.mp3" ),
    ( "NTSB", "Track4.mp3" ),
    ( "NTSB", "Track5.mp3" ),
    ( "NTSB", "Track5.mp3" )
]
for album, track in spreadsheet:
    if album == 'NASB' and track in folder:
        print('%s %s' % ('Yes', track))
    else:
        print('%s %s' % ('No', track))

with 给你输出:

Yes Track1.mp3
Yes Track2.mp3
Yes Track3.mp3
Yes Track4.mp3
Yes Track5.mp3
Yes Track5.mp3
No Track1.mp3
No Track2.mp3
No Track3.mp3
No Track4.mp3
No Track5.mp3
No Track5.mp3

推荐阅读