如何将所有30天以上的文件夹复制并移动到_History文件夹?

时间:2019-03-27 08:26:40

标签: python copy move

结构: 20170410.1207.te <-日期(2017 04 10,12:07)

有一个包含几个文件夹的公司文件夹。具有以上结构且早于30天的所有文件夹都应移至文件夹_History(基本上是将其归档),但是无论使用哪个时间戳,都至少应保留5个。

作为时间值,必须从文件夹名称中提取字符串以将其转换为日期,并与今天的日期减去30天进行比较。

我还想创建一个日志文件,记录何时将哪个文件夹移动到什么位置。

下面的代码仅显示我的文件名,有人可以帮我吗?

import os
import shutil

for subdir, dirs, files in os.walk("C:\Python-Script\Spielwiese"):
    for file in files:
        print(os.path.join(file))

shutil.move("C:\Python-Script\Spielwiese\", "C:\Python-Script\Spielwiese2")

1 个答案:

答案 0 :(得分:0)

以下代码将返回给定时间范围内所有文件的列表,并按Windows上的创建时间排序。根据您要过滤的方式,我可以为您提供更多信息。然后,您可以处理结果列表。还有一件事是,您应该对Windows文件路径使用pathlib,以免出现德语路径和路径名中的Unicode转义问题。

import os
import shutil

found_files = []

for subdir, dirs, files in os.walk("C:\Python-Script\Spielwiese"):
    for file in files:
        name = os.path.join(file)
        create_date = os.path.getctime(file)
        if create_date > some_time: # Put the timeframe here
            found_files.append((name, create_date))
found_files.sort(key=lambda tup: tup[1]) # Sort the files according to creation time