我正在尝试按创建日期对文件夹中的文件进行排序(最新创建的文件排在第一位)。以下命令:
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将找不到相同的文件
因此,要修复它,可以将当前文件夹设置为提供文件名的文件夹,或者更改列表结构,使列表包含完整的路径名,而不仅仅是文件名
相关问题 更多 >
编程相关推荐