比较子字符串是否存在于现有文件列表中,但尾随名称不同

compare if substring exists within an existing list of files but with a different trailing name

提问人:Megan Darcy 提问时间:3/26/2023 更新时间:3/26/2023 访问量:28

问:

我有 2 个正在比较的文件名列表。

第一个列表是目录中文件的完整列表,第二个列表是我从目录中提取的具有特定文件名格式的文件列表。我想使用第二个列表,在完整列表中查找命名略有不同的文件。

这是我拥有的代码:

f = open('Sims4_62-62.txt', 'a')
dataread = listofGenFiles
print(listofGenFiles)

for genData in dataread:
    #counterRep = 0
    #print(genData)
    #print(dataread)
    if genData in fulldata and genData in 'Color_Front':
        if counterRep < 62:
            f.write(genData + '\n')
            counterRep += 1
            print(counterRep)       
f.close()

genData中的文件名示例:

Ea_S6D1_fC3_Color_Left.npy
Ea_S6D1_fC3_Color_Right.npy
Ea_S6D1_fC4_Color_Back.npy
Ea_S6D1_fC4_Color_Left.npy
Ea_S6D1_fC4_Color_Right.npy

Ea_S6D2_fC16_Color_Back.npy Ea_S6D2_fC16_Color_Left.npy

Ea_S6D4_fC16_Color_Left.npy Ea_S6D3_fC15_Color_Left.npy

摘自目录中的完整列表,其中一些文件在命名中具有“Front”变体,而这些变体最初未在第二个列表中采用(来自 fulldata 变量)

Ea_S6D1_fC3_Color_Front.npy <--- 我想将此文件名添加到我的文件中
Ea_S6D1_fC3_Color_Right.npy
Ea_S6D1_fC4_Color_Back.npy
Ea_S6D1_fC4_Color_Left.npy
Ea_S6D1_fC4_Color_Right.npy
Ea_S6D2_fC16_Color_Front.npy < ---- 我想将此文件名添加到我的文件
Ea_S6D2_fC16_Color_Left.npy

如何修复我的代码?不知道我在这里错过了什么:)谢谢!

python-3.x 文件 io

评论

0赞 B Remmelzwaal 3/26/2023
不应该是吗?例如,您想检查该字符串是否是文件名的子字符串?'Color_Front' in genData
0赞 Megan Darcy 3/26/2023
@BRemmelzwaal否,因为在genData中找不到,它只会在列表中。Color_Frontfulldata
0赞 B Remmelzwaal 3/26/2023
要使该检查为真,应类似于 、 等。你确定这是正确的吗?genData'Color''or_Fr'
0赞 Megan Darcy 3/26/2023
@BRemmelzwaal 我不确定该检查是否正确......所以将包含类似 的东西,然后我想检查其中是否包含上述子字符串,因此将找到其中调用的文件并将其写入我的新文件,genDataEa_S6D1_fC3_Color_RightfulldataColor_FrontfulldataEa_S6D1_fC3_Color_Front
1赞 B Remmelzwaal 3/26/2023
为此,一个快速的解决方案是执行一些操作,例如将最后一个单词替换为 .可能有更好的解决方案使用 ,但这应该有效。'_'.join(genData.split('_')[:-1]) + "_Front.npy")Frontos

答: 暂无答案