删除文件夹中除最新文件外的所有文件

时间:2019-02-27 12:13:45

标签: python-3.x

我有一个文件夹,其中有3个特定文件结束,这3个文件中的2个被覆盖,并且文件名中包含日期和时间的堆栈。

  1. 文件1:Response.csv
  2. 文件2:idle.csv
  3. 文件3:yyyymmdd_EMSRP_yyymmdd_hhmmss.csv

我目前有以下工作代码:

import os

source_folder = 'E:/idle/'

def latestFile():
    EMSRP_List = []
    for somefile in os.listdir(source_folder):

        if (somefile.startswith('20')):
            EMSRP_List.append(source_folder+somefile)

    EMSRP_List.sort()
    #print(len(EMSRP_List))
    if len(EMSRP_List) > 1:
        for file in EMSRP_List[:-1]:
            os.remove(file)
    #print(EMSRP_List)

def main():

   latestFile() 

if __name__== "__main__":
    main()       

这不会无限期地工作,有更好的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

这只是我的主意。我期望更多有经验的程序员提供更好的选择。

我创建了一个排除文件列表,该文件列表我首先从列表中删除。然后,我得到file_list的x。如果文件名的模式与您共享的文件名匹配,则max返回最新的EMSRP文件。

max
相关问题