用python写一个代码,清理共享文件夹超过3年没有被访问过的文件
时间: 2024-02-03 17:14:08 浏览: 14
可以使用os模块、datetime模块和time模块来实现这个功能。以下是一个基本的代码:
```python
import os
import datetime
import time
# 获取当前时间
current_time = time.time()
# 遍历共享文件夹
for root, dirs, files in os.walk("共享文件夹路径"):
for file in files:
# 获取文件路径
file_path = os.path.join(root, file)
# 获取文件访问时间
access_time = os.stat(file_path).st_atime
# 计算文件访问时间与当前时间的差值
time_diff = current_time - access_time
# 将差值转换为天数
days_diff = int(time_diff / (24 * 3600))
# 如果文件超过3年没有被访问过,则删除文件
if days_diff > 3 * 365:
os.remove(file_path)
```
需要将代码中的“共享文件夹路径”替换为实际的共享文件夹路径。同时,需要注意的是,删除文件是一个危险的操作,需要谨慎使用。建议先使用print语句输出要删除的文件路径,确认无误后再进行删除操作。
相关问题
用python写一个代码,清理共享文件夹超过3年的旧文件
可以使用以下代码来清理共享文件夹中超过3年的旧文件:
```python
import os
import time
folder_path = "path/to/folder/" # 共享文件夹的路径
threshold = time.time() - 3 * 365 * 24 * 60 * 60 # 时间阈值为3年前的时间戳
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
if os.stat(file_path).st_mtime <= threshold:
os.remove(file_path)
print(f"Deleted {file_path}")
```
这段代码首先定义了共享文件夹的路径和时间阈值,然后通过 `os.walk` 函数遍历文件夹中的所有文件和子文件夹。对于每个文件,如果其修改时间早于时间阈值,则删除该文件。最后,打印出被删除的文件路径。注意,此代码将永久删除文件,请谨慎操作。
用python写一个代码,删除共享文件夹里面的压缩文件中的包含autosave、crashreport的文件
可以使用Python的os和shutil库来实现该功能。以下是一个简单的代码示例:
```python
import os
import shutil
import zipfile
folder_path = r"C:\SharedFolder" # 共享文件夹路径
for file_name in os.listdir(folder_path):
if file_name.endswith(".zip"):
with zipfile.ZipFile(os.path.join(folder_path, file_name), 'r') as zip_ref:
for file in zip_ref.namelist():
if "autosave" in file or "crashreport" in file:
zip_ref.extract(file, os.path.join(folder_path, "temp")) # 先将需要删除的文件解压到临时文件夹中
with zipfile.ZipFile(os.path.join(folder_path, file_name), 'w') as zip_ref:
for file in os.listdir(os.path.join(folder_path, "temp")):
if not ("autosave" in file or "crashreport" in file):
zip_ref.write(os.path.join(folder_path, "temp", file), file) # 将没有包含autosave和crashreport的文件重新压缩
shutil.rmtree(os.path.join(folder_path, "temp")) # 删除临时文件夹
```
该代码首先获取共享文件夹中所有的压缩文件,然后逐个打开并检查压缩包内的文件名是否包含"autosave"或"crashreport",如果包含,则先将该文件解压到一个临时文件夹中,最后重新压缩所有没有包含"autosave"或"crashreport"的文件,覆盖原有的压缩文件,并在操作完成后删除临时文件夹。