我正在尝试按创建日期对文件夹中的文件进行排序(首先创建的是最新文件)。以下命令:
import os
list1 = os.listdir(r'D:\Users\Pruthvi\Videos\Movies & TV Shows')
print(list1)
以任意顺序显示我的电影文件夹中的当前文件:
['desktop.ini', 'Friends.S05.1080p.BluRay.x264-TENEIGHTY[rartv]', 'Narcos.Mexico.S02.COMPLETE.1080p.NF.WEBRip.DDP5.1.Atmos.x264-NTG[TGx]', 'Rick.and.Morty.S04E09.1080p.WEBRip.x264-BTX[TGx]', 'South.Park.S01.1080p.BluRay.x264-SHORTBREHD[rartv]', 'Temp', 'The.Wolf.of.Wall.Street.2013.1080p.BluRay.AVC.DTS-HD.MA.5.1-SharpHD']
已经搜索了StackOverflow,该解决方案似乎在Windows上使用了以下内容:
list1.sort(key=os.path.getctime)
但是,这导致以下错误:
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'desktop.ini'
如您所见,os.listdir函数为您提供没有任何文件夹路径的文件名。如果将这些名称之一传递给os.path.getctime,它将不知道在其中找到文件的文件夹,因此它将仅在当前文件夹中查找。除非当前文件夹与传递给os.listdir的文件夹相同,否则getctime将找不到相同的文件。
因此,为了解决它,您可以使当前文件夹成为提供文件名的文件夹,或者可以更改列表结构,以便列表包含完整的路径名,而不仅仅是文件名。