结构: 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")
答案 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