Python:获取空文件以及非空最新文件的列表

时间:2018-08-03 03:33:24

标签: python python-2.6

我的文件夹中的文件: 文件模式-<ABC>_<123>_<CURRENT_DATE>.csv

Example:
1.
  ABC_123_20180802 - Empty File
  ABC_123_20180730 - Empty File
  ABC_123_20180725 - Non-Empty File 

2.  
  EFG_456_20180802 - Empty File
  ABC_456_20180601 - Non-Empty File  

我们的Python版本是2.6,想打印两件事。

1。特定日期文件夹中的空文件(csv)列表。 从此开始列出空文件:

path="C:\Users\\"
for f in os.listdir(path):
    file=path+'\\'+f
    if (os.stat(file).st_size == 0):
        print(file)

Expected Output:
    ABC_123_20180802 - File Empty
    EFG_456_20180802 - File Empty

2。如果当前日期文件为空,则列出最后一个非空文件(最新日期)。

Expected Output:
    ABC_123_20180725 - File Non-Empty
    ABC_456_20180601 - File Non-Empty

如何在文件夹中列出给定日期的空文件? 其次,如何查找文件夹中所有最新的非空文件(任何日期)?

2 个答案:

答案 0 :(得分:0)

要查找空/非空文件,可以使用列表理解:

empty_file = [f for f in os.listdir(path) if os.stat((path+'\\'+f)).st_size == 0]
non_empty_file = [f for f in os.listdir(path) if os.stat((path+'\\'+f)).st_size != 0]

然后只需遍历列表并执行所需的任何操作即可。

答案 1 :(得分:0)

似乎您已经在使用回答问题所需的所有工具。

latest_non_empty = None
path="C:\Users\\"
for f in os.listdir(path):
    file=path+'\\'+f
    if (os.stat(file).st_size > 0):
        if latest_none_empty:
            if lastest_none_empty[0] < os.stat(file).st_mtime:
                latest_non_empty_file = (os.stat(file).st_mtime, file)
        else:
            latest_non_empty_file = (os.stat(file).st_mtime, file)