这些要求以引号引起来。我想要列表理解还是生成器来获取文件名?我愿意使用任何现代库,但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")
答案 0 :(得分:0)
我需要缩小问题范围。我宁愿完全删除这个问题。