【问题标题】:List/Arrays - Check Dates列表/数组 - 检查日期
【发布时间】:2010-10-05 20:23:16
【问题描述】:

我正在尝试制作一个程序来检查数组以确保有四个名称部分相同的文件夹。

所以

对于像 0103(1 月 3 日)这样的日期,应该有 0103-1、0103-2、0103-3 和 0103-4。其他文件夹如 0107-1、0107-2、0107-3、0107-4。我该怎么做呢?我考虑过使用 glob.glob (python) 和通配符来确保只有四个匹配项……但我不喜欢这种方法。

有什么建议吗?

【问题讨论】:

  • “一个数组”?你是说清单吗?目录?
  • 为什么你不喜欢 glob.glob?

标签: python sorting


【解决方案1】:
import os

def myfunc(date, num):
    for x in range(1, num+1):
        filename = str(date) + "-" + str(x)
        if os.path.exists(filename):
            print(filename+" exists")
        else:
            print(filename+" does not exist")

myfunc('0102', 3);

0102-1 不存在

0102-2 不存在

0102-3 不存在

【讨论】:

    【解决方案2】:

    这是一种在给定字符串数组的情况下找到最大公共前导子字符串的简单方法:

    >>> arr = ['0102-1', '0102-2', '0102-3']
    >>> for i in reversed(range(len(arr[0]))):
    ...     for s in arr:
    ...         if not s.startswith(arr[0][:i+1]):
    ...            break
    ...     else:
    ...         break
    ... else:
    ...     if i == 0: i = -1
    ...
    >>> arr[0][:i+1]
    '0102-'
    >>> i
    4
    

    【讨论】:

      猜你喜欢
      • 2017-02-15
      • 2022-09-28
      • 2013-06-08
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 2015-09-19
      • 2020-03-21
      相关资源
      最近更新 更多