如何在Python3中遍历pathlib.Path对象?

时间:2019-03-15 16:48:44

标签: python-3.x pathlib

这些要求以引号引起来。我想要列表理解还是生成器来获取文件名?我愿意使用任何现代库,但pathlib似乎是最佳选择。

  

该脚本应每天通过cron作业作为客户uid运行(例如,   customer.crontab)在运行时,脚本应执行以下操作

mkdir -p archive/text archive/audio
  

运行时,脚本应遍历源目录/ nord / data   并将所有日期戳早于180天的音频文件移动到   存档/音频遍历笔录目录并移动所有通话   与超过180天的通话相关的笔录   / nord / data / archive / text/。

     

音频位于名为YYYYMMDD_HHmmss_(hash).wav的文件中。通话记录   在文件YYYYMMDD_HHmmss_(hash).xml中。不需要其他文件   感动。

     

查看文件名(前导YYYYMMDD)至   确定相关通话的日期-我们不能依靠   修改/创建文件的时间,因为重新处理可以更改日期   并导致不合规的举动。

我想使用pathlib查找源目录的文件(“扫描”)并解决了该问题。由于Patrick,我也解决了时间增量问题,但是我似乎无法序列化他发布到55094610的代码。以下是我要执行的操作的示例。这是不是的工作代码,并非长期有效。

from pathlib import Path
from datetime import datetime, timedelta

toDay = datetime.today().strftime("%Y%m%d")

wavedir = Path('/nord/data')
# source dir

waveglob = wavedir.glob('**/*.wav')
# creates generator of pathlib paths, I think

ewaveList = list(Path(wavedir).glob('**/*.ewav'))
# creates a list of paths

filename = ewaveList.pop()
# gets one path at a time.

def get_date_from_filename(waveglob):
    return datetime.strptime(filename[:8], "%Y%m%d")

if get_date_from_fname + timedelta(days=180) <= toDay:
    print ("File is >= 180 days old")
else:
    print ("file is <= 180 days old")

1 个答案:

答案 0 :(得分:0)

我需要缩小问题范围。我宁愿完全删除这个问题。