i have tryed to make a script that creates a new folder every day and name it the name of the day inside a folder "A". for example today there was created a folder called "25-08-2023". it worked. Then i extended the script so if there are pdf's inside the newly created folder and they have been opened, the folder "25-08-2023" would automatically be renamed "25-08-2023-done".
the script is:
import os
import time
source_folder = r"C:\Users\sgund\OneDrive\Dokumenter\A"
def all_files_seen(files):
for file in files:
if not os.path.exists(file):
return False
file_stat = os.stat(file)
if time.time() - file_stat.st_atime > 0:
return False
return True
while True:
current_time = time.localtime()
if current_time.tm_hour == 8 and current_time.tm_min == 40:
subfolders = [folder for folder in os.listdir(source_folder) if os.path.isdir(os.path.join(source_folder, folder))]
for folder_name in subfolders:
folder_path = os.path.join(source_folder, folder_name)
if not folder_name.endswith("-Done"):
files_in_folder = [os.path.join(folder_path, file) for file in os.listdir(folder_path)]
if all_files_seen(files_in_folder):
new_folder_name = folder_name + "-Done"
new_folder_path = os.path.join(source_folder, new_folder_name)
os.rename(folder_path, new_folder_path)
print(f"Renamed folder: {folder_name} to {new_folder_name}")
else:
print(f"Not all files in folder {folder_name} have been seen.")
time.sleep(60) # Wait for 1 minute to avoid repeated checks
else:
time.sleep(10) # Check every 10 seconds
but i doesnt work. is there an easier way to create such a system, or can someone see something wrong with the script?
the script is:
import os
import time
source_folder = r"C:\Users\sgund\OneDrive\Dokumenter\A"
def all_files_seen(files):
for file in files:
if not os.path.exists(file):
return False
file_stat = os.stat(file)
if time.time() - file_stat.st_atime > 0:
return False
return True
while True:
current_time = time.localtime()
if current_time.tm_hour == 8 and current_time.tm_min == 40:
subfolders = [folder for folder in os.listdir(source_folder) if os.path.isdir(os.path.join(source_folder, folder))]
for folder_name in subfolders:
folder_path = os.path.join(source_folder, folder_name)
if not folder_name.endswith("-Done"):
files_in_folder = [os.path.join(folder_path, file) for file in os.listdir(folder_path)]
if all_files_seen(files_in_folder):
new_folder_name = folder_name + "-Done"
new_folder_path = os.path.join(source_folder, new_folder_name)
os.rename(folder_path, new_folder_path)
print(f"Renamed folder: {folder_name} to {new_folder_name}")
else:
print(f"Not all files in folder {folder_name} have been seen.")
time.sleep(60) # Wait for 1 minute to avoid repeated checks
else:
time.sleep(10) # Check every 10 seconds
but i doesnt work. is there an easier way to create such a system, or can someone see something wrong with the script?