我有一个.txt文件,有几个文件路径和不同的扩展名。本质上,它是一个大型项目中使用的所有资源的列表。一行中通常有多个文件。在
我要做的是从这个文件中获取每个扩展名为.png的文件名,并将它们放入一个新的文本文件中。在
这样我就可以获取这个.png文件列表,并将其与我已经创建的列表进行比较,该列表获取了资源目录中.png的所有文件名和扩展名。在
我使用的代码是:
resourceList = [file for file in os.listdir('.')
if file.endswith('.png')]
我的最终目标是比较文件名列表并从资源目录中删除所有不匹配的文件。在
我一直在玩re
,glob
,和{
任何帮助都将不胜感激。我的编程技能充其量也还算不错,而且我已经为此头疼了一段时间了。谢谢!在
更新2
^{pr2}$澄清:
我计算出的资源列表是从目录中取出的文件名列表。例子:
'Button.png', 'Switch.png', etc
。
我遇到的问题是从VisualStudio中搜索的文本文件中复制的**PNG,所以我有文件.PNG被引用在PATH、其他C++垃圾中,以及文件名.png我想抓住的。我最终想比较这两个列表,看看哪些文件不匹配。线条如下:
C:\BaseProjects\Source\FileManagerGeneralSettings.qml(86): buttonImageName: imgDirUrlString + "/WizBack_titleBar.png"
C:\BaseProjects\Source\FileSendPage.qml(35): source: imgDirUrlString + "/TabEmpty.png"
C:\BaseProjects\Source\FileSendPage.qml(224): buttonIcon: imgDirUrlString + "/DialogConfirm.png"
您应该看看os.path模块。它负责跨平台的所有文件路径和目录管理。在
要获取除扩展名之外的文件名,请查看basename
在本例中,使用join将.png添加到要比较的列表中所有条目的末尾,因为这意味着文件名是完整的,可以传递给delete函数。在
是的!在
我离我的最终目标又近了一步。我现在有两个列表,我可以通过比较字符串来迭代找到匹配的。在
要在我使用的目录中创建.png的列表:
要创建第二个列表,将所有.png从文本文件中的混乱文本中拉出,我使用以下命令:
^{2}$我不知道字符串的所有不同的“通配符”字符,但它似乎是唯一能做到的。我对
os.path
没什么运气,因为它给了我找到的所有其他路径。我相信用同样的魔法我也能得到它。在希望我的问题能帮助别人。现在开始比较吧!在
相关问题 更多 >
编程相关推荐