将文件路径转换为日期并忽略不可转换的值
convert filepaths to date's and ignore not-convertable values
我正在开发一个简单的 Python 脚本来备份文件。
虽然这工作正常,但我想添加一个功能,其中名称为 6 个月前的文件夹将自动删除。
基本上如果有一个名为:2014-05-23 的文件夹和我 运行 应该删除的脚本。
现在我遇到的问题是从日期循环中转换字符串(用于时间比较)。
import os
import shutil
import time
import datetime
root_folder = r'C:\Users\Coen\Desktop\Test 1'
bestemming = r'C:\Users\Coen\Desktop\test 2\'
date_str = time.strftime("%Y-%m-%d")
nieuwe_map = os.path.join(bestemming + date_str)
verwijder_datum = (datetime.date.today() - datetime.timedelta(6*365/12))
shutil.copytree(root_folder, nieuwe_map)
**for oude_map, bestand, files in os.walk(bestemming):
if datetime.datetime.strptime((oude_map[-9:]), "%Y-%m-%d") > verwijder_datum:
shutil.rmtree(oude_map)**
我收到值错误,因为某些结果无法转换为字符串。我尝试使用 except 并尝试但我认为我做错了什么,因为我无法正常工作。希望大家帮帮我。
总结:我需要将文件路径转换为日期,以便 python 决定是否删除该文件夹。我正在使用无法转换为日期的 returns 值的循环,而且我似乎无法通过异常修复它。我该如何解决这个问题?
尝试以下操作:
for oude_map, bestand, files in os.walk(bestemming):
try:
if datetime.datetime.strptime((oude_map[-10:]), "%Y-%m-%d").date() < verwijder_datum:
shutil.rmtree(oude_map)
except ValueError:
pass
我正在开发一个简单的 Python 脚本来备份文件。
虽然这工作正常,但我想添加一个功能,其中名称为 6 个月前的文件夹将自动删除。
基本上如果有一个名为:2014-05-23 的文件夹和我 运行 应该删除的脚本。
现在我遇到的问题是从日期循环中转换字符串(用于时间比较)。
import os
import shutil
import time
import datetime
root_folder = r'C:\Users\Coen\Desktop\Test 1'
bestemming = r'C:\Users\Coen\Desktop\test 2\'
date_str = time.strftime("%Y-%m-%d")
nieuwe_map = os.path.join(bestemming + date_str)
verwijder_datum = (datetime.date.today() - datetime.timedelta(6*365/12))
shutil.copytree(root_folder, nieuwe_map)
**for oude_map, bestand, files in os.walk(bestemming):
if datetime.datetime.strptime((oude_map[-9:]), "%Y-%m-%d") > verwijder_datum:
shutil.rmtree(oude_map)**
我收到值错误,因为某些结果无法转换为字符串。我尝试使用 except 并尝试但我认为我做错了什么,因为我无法正常工作。希望大家帮帮我。
总结:我需要将文件路径转换为日期,以便 python 决定是否删除该文件夹。我正在使用无法转换为日期的 returns 值的循环,而且我似乎无法通过异常修复它。我该如何解决这个问题?
尝试以下操作:
for oude_map, bestand, files in os.walk(bestemming):
try:
if datetime.datetime.strptime((oude_map[-10:]), "%Y-%m-%d").date() < verwijder_datum:
shutil.rmtree(oude_map)
except ValueError:
pass