Python 处理目录中一系列编号(日期)的文件

0 python file-io glob python-2.x

我正在尝试使用 python 2.7 在目录中查找一系列特定文件。我的目录中有许多文件,其名称类似于 AB_yyyyjjjhhmmss_001.txt,其中 y 是年份,j 是儒略日期,h 是小时等等。每个时间对应于获取某些数据的时间,而不一定是创建或操作文件的时间。我喜欢选择一个时间范围,比如从 2​​013305010000 到 2013306123000 并处理它们。

我有类似的东西,

import glob

def get_time (start_time = None, end_time = None):

    if start_time == None:
        start_time = input("start: ")
    if end_time == None:
        end_time = input("end: ")

    duration = str(start_time) + "-" + str(end_time)

    listing = glob.glob("*_[" + duration + "]_*")
Run Code Online (Sandbox Code Playgroud)

我了解到这[ ]只是为了匹配单个数字。所以我在这里完全偏离了轨道。我也尝试过{start_time..end_time}组合,但没有效果。

dam*_*ois 5

如果所有文件都有相同的结构,你可以简单地写:

import os
import re
start = sys.argv[1]
end = sys.argv[2]
for filename in os.listdir('test'):
    if start <= filename.split('_')[1] <= end:
        print "Process %s" % filename
Run Code Online (Sandbox Code Playgroud)

例子:

$ ls test
AB_2013105010000_001.txt AB_2013305010000_001.txt AB_2013306103000_001.txt 
AB_2013306123000_001.txt AB_2013316103000_001.txt

$ python t.py 2013305010000 2013306123000
Process AB_2013305010000_001.txt
Process AB_2013306103000_001.txt
Process AB_2013306123000_001.txt
Run Code Online (Sandbox Code Playgroud)